spring boot 通过mybatis连接MySQL数据库
来源:互联网 发布:linux默认开启小键盘 编辑:程序博客网 时间:2024/05/21 11:14
在上篇中,已经创建好了boot的三个服务。现在在service-A中说明一下连接数据库的详细过程。
1.在pom.xml中加入
<!-- 与数据库操作相关的依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!--mybatis与springboot整合包--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.0</version> </dependency> <!--mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- 使用druid数据源 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.1</version> </dependency> <!-- mybatis包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.4</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.1</version> </dependency>
2.创建实体类Test.java
/** * Created by qqg on 2017/9/19. */ public class Test { private int id; private String name; private String password; @Override public String toString() { return "Test{" + "id=" + id + ", name='" + name + '\'' + ", password='" + password + '\'' + '}'; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
3.创建mapper接口
import com.hand.dto.Test;import java.util.List;/** * Created by qqg on 2017/9/19. */public interface TestMapper { List<Test> findAll();}
4.创建service接口
import com.hand.dto.Test;import org.springframework.stereotype.Service;import java.util.List;/** * Created by qqg on 2017/9/19. */public interface ITestService { List<Test> findAll();}
5.实现service接口
import com.hand.dto.Test;import com.hand.mapper.TestMapper;import com.hand.service.ITestService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;/** * Created by qqg on 2017/9/19. */@Servicepublic class TestServiceImpl implements ITestService { @Autowired private TestMapper mapper; @Override public List<Test> findAll() { return mapper.findAll(); }}
6.在配置文件resources下创建mapper文件夹,并在里面添加 TestMapper.xml文件。
TestMapper.xml 文件编写:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.hand.mapper.TestMapper"> <select id="findAll" resultType="com.hand.dto.Test"> SELECT id,name,password from test </select></mapper>
7.resources下创建application.yml,并配置
server: port: 9092spring: application: name: spring-cloud-consumer datasource: name: test url: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8 username: root password: 123456 #使用druid数据源 &useSSL=true type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.jdbc.Driver filters: stat maxActive: 20 initialSize: 1 maxWait: 60000 minIdle: 1 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: select 'x' testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true maxOpenPreparedStatements: 20mybatis: mapperLocations: classpath:mapper/*.xml #指定*Mapper.xml的位置#设置日志级别,打印mybatis的日志logging: level: root: debug
8.1 mybatis映射文件类MybatisConfig
import com.alibaba.druid.pool.DruidDataSource;import org.apache.ibatis.logging.LogFactory;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionFactoryBean;import org.mybatis.spring.SqlSessionTemplate;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.core.env.Environment;import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import org.springframework.core.io.support.ResourcePatternResolver;import org.springframework.jdbc.datasource.DataSourceTransactionManager;import javax.sql.DataSource;/** * Created by qqg on 2017/9/19. */@Configurationpublic class MybatisConfig { /** * 注入环境变量的值 */ @Autowired private Environment environment; /** * 获取数据源DataSource * @return */ @Bean public DataSource druidDataSource() { DruidDataSource druidDataSource = new DruidDataSource(); druidDataSource.setUrl(environment.getProperty("spring.datasource.url")); druidDataSource.setUsername(environment.getProperty("spring.datasource.username")); druidDataSource.setPassword(environment.getProperty("spring.datasource.password")); druidDataSource.setDriverClassName(environment.getProperty("spring.datasource.driverClassName")); druidDataSource.setMaxActive(Integer.parseInt(environment.getProperty("spring.datasource.maxActive"))); druidDataSource.setInitialSize(Integer.parseInt(environment.getProperty("spring.datasource.initialSize"))); druidDataSource.setMaxWait(Long.parseLong(environment.getProperty("spring.datasource.maxWait"))); druidDataSource.setMinIdle(Integer.parseInt(environment.getProperty("spring.datasource.minIdle"))); druidDataSource.setTimeBetweenEvictionRunsMillis(Long.parseLong(environment.getProperty("spring.datasource.timeBetweenEvictionRunsMillis"))); druidDataSource.setMinEvictableIdleTimeMillis(Long.parseLong(environment.getProperty("spring.datasource.minEvictableIdleTimeMillis"))); druidDataSource.setValidationQuery(environment.getProperty("spring.datasource.validationQuery")); druidDataSource.setTestWhileIdle(Boolean.parseBoolean(environment.getProperty("spring.datasource.testWhileIdle"))); druidDataSource.setTestOnBorrow(Boolean.parseBoolean(environment.getProperty("spring.datasource.testOnBorrow"))); druidDataSource.setTestOnReturn(Boolean.parseBoolean(environment.getProperty("spring.datasource.testOnReturn"))); druidDataSource.setPoolPreparedStatements(Boolean.parseBoolean(environment.getProperty("spring.datasource.poolPreparedStatements"))); druidDataSource.setMaxOpenPreparedStatements(Integer.parseInt(environment.getProperty("spring.datasource.maxOpenPreparedStatements"))); return druidDataSource; } /** * 获取SqlSessionFactory * @param druidDataSource * @return */ @Bean(name = "sqlSessionFactory") public SqlSessionFactory sqlSessionFactoryBean(DataSource druidDataSource) { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(druidDataSource); LogFactory.useLog4JLogging(); //添加XML目录 ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); String xmlPath = environment.getProperty("mybatis.mapperLocations"); try { bean.setMapperLocations(resolver.getResources(xmlPath)); return bean.getObject(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } } /** * * @param sqlSessionFactory * @return */ @Bean public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) { return new SqlSessionTemplate(sqlSessionFactory); } /** * 增加事务 * @param druidDataSource * @return */ @Bean public DataSourceTransactionManager transactionManager(DataSource druidDataSource) { return new DataSourceTransactionManager(druidDataSource); }}
8.2MabatisMapperScanConfig类
import org.mybatis.spring.mapper.MapperScannerConfigurer;import org.springframework.boot.autoconfigure.AutoConfigureAfter;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;/** * Created by qqg on 2017/9/19. */@Configuration//注意,由于MabatisMapperScanConfig执行的比较早,所以必须有下面的注解@AutoConfigureAfter(MybatisConfig.class)public class MabatisMapperScanConfig { @Bean public MapperScannerConfigurer mapperScannerConfigurer() { MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer(); //注意这里的sqlSessionFactory就是MybatisConfig里面的sqlSessionFactoryBean方法,注解bean的名字 mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory"); //接口路径,通过这些接口调用sql的配置,操作数据库 mapperScannerConfigurer.setBasePackage("com.mapper"); return mapperScannerConfigurer; }}
9. controller的编写
import com.hand.dto.Test;import com.hand.service.ITestService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.cloud.client.ServiceInstance;import org.springframework.cloud.client.discovery.DiscoveryClient;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import java.util.List;import java.util.logging.Logger;/** * Created by qqg on 2017/9/15. */@RestControllerpublic class ComputeController { private final Logger logger = Logger.getLogger(String.valueOf(getClass())); @Autowired private DiscoveryClient client; @Autowired private ITestService service; @RequestMapping(value = "/list") public List<Test> getList(){ return service.findAll(); } @RequestMapping(value = "/add" ,method = RequestMethod.GET) public Integer add(@RequestParam Integer a, @RequestParam Integer b) { ServiceInstance instance = client.getLocalServiceInstance(); Integer r = a + b; logger.info("/add, host:" + instance.getHost() + ", service_id:" + instance.getServiceId() + ", result:" + r); return r; }}
10.建立数据库,以及表,这里的数据库名称为test,表名为test,里面的字段根据实体类的自己看。
11.重新启动3个服务,访问http://localhost:5555/api-a/list?accessToken=token
OK。
相关连接:http://blog.csdn.net/j903829182/article/details/75643661
阅读全文
0 0
- spring boot 通过mybatis连接MySQL数据库
- Spring Boot MyBatis 连接数据库
- spring boot mybatis连接数据库
- Spring Boot MyBatis 连接数据库
- Spring Boot MyBatis 连接数据库
- Spring Boot MyBatis 连接数据库
- Spring Boot MyBatis 连接数据库
- 45. Spring Boot MyBatis连接Mysql数据库【从零开始学Spring Boot】
- 45. Spring Boot MyBatis连接Mysql数据库【从零开始学Spring Boot】
- (45). Spring Boot MyBatis连接Mysql数据库【从零开始学Spring Boot】
- Spring Boot 连接MySql数据库
- Spring Boot 连接MySql数据库
- Spring boot 用mybatis连接数据库
- Spring Boot使用mybatis连接mysql
- Spring Boot通过Mybatis,使用mapper接口和xml配置sql,连接数据库
- Spring Boot教程(四)Spring Boot 连接MySql数据库
- Spring Boot系列(六)Spring Boot 连接MySql数据库
- Spring Boot应用连接数据库MySQL
- Android 在使用Intent跳转并传递对象参数时,出现Parcelable encountered IOException writing serializable object
- 验证中国的座机号的正则表达式
- 在Popupwindow布局中嵌套ScrollView,滑动内容时视图出现反复闪烁的问题
- mysql pdf
- ResultSetHandler的总结
- spring boot 通过mybatis连接MySQL数据库
- Python的ASCII, GB2312, Unicode , UTF-8 相互转换
- Android布局文件中巧用tools命名空间
- 单元最短路径问题Dijkstra算法
- caffe:net结构可视化
- openjudge 热血格斗场
- 基于OpenResty和Node.js的微服务架构实践
- properties文件路径读取
- 云主机Docker部署第一个应用helloworld