SpringBoot整合JDBC、Druid、Mybatis、JPA的简单使用。
1 SpringBoot整合JDBC
新建项目引入MySQL+JDBC+WEB;新建测试数据库jdbc
在application.yml中添加如下配置:
spring: datasource: username: root password: root url: jdbc:mysql://localhost:3306/jdbc?serverTimezone=GMT%2B8 driver-class-name: com.mysql.cj.jdbc.Driver
测试数据源
@AutowiredDataSource dataSource;@Testvoid contextLoads() throws SQLException {
System.out.println(dataSource.getClass()); Connection connection= dataSource.getConnection(); System.out.println(connection); connection.close();}
可以看到在SpringBoot2.x版本中默认使用
class com.zaxxer.hikari.HikariDataSource数据源。它是JAVA WEB中最快的数据源。
SpringBoot还可以支持以下数据源:
org.apache.tomcat.jdbc.pool.DataSource、HikariDataSource、BasicDataSource、c3P0
自动建表功能测试
在resources目录下新建建表语句department.sql
SET FOREIGN_KEY_CHECKS=0;DROP TABLE IF EXISTS `department`;CREATE TABLE `department` ( `id` int(11) NOT NULL AUTO_INCREMENT, `departmentName` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
在application.yml中添加如下配置:
spring: datasource: username: root password: root url: jdbc:mysql://localhost:3306/jdbc?serverTimezone=GMT%2B8 driver-class-name: com.mysql.cj.jdbc.Driver schema: - classpath:department.sql initialization-mode: always
启动项目,实现了自动建表。
此外,还可以将department.sql命名为schema.sql或schema‐all.sql,同样可以实现自动建表。
SpringBoot自动配置了JdbcTemplate来操作数据库。
@Controllerpublic class mycontroller {
@Autowired JdbcTemplate jdbcTemplate; @ResponseBody//将java对象转为json格式的数据 @GetMapping("/query") public Map<String,Object> queryAll(){
ListString, return list.get(0); }}
实现了查询功能,其他CRUD都可以自行测试。
2 SpringBoot整合Druid
1 接着上面项目,继续导入依赖
<dependency> <groupId>com.alibabagroupId> <artifactId>druidartifactId> <version>1.1.21version>dependency><dependency> <groupId>log4jgroupId> <artifactId>log4jartifactId> <version>1.2.17version>dependency>
SpringBoot2.x版本还可以导入druid-starter(非官网版,druid自适应版)
<dependency> <groupId>com.alibabagroupId> <artifactId>druid-spring-boot-starterartifactId> <version>1.2.4version>dependency>
2 application.yml中type引入druid数据源
spring: datasource: username: root password: root url: jdbc:mysql://localhost:3306/jdbc?serverTimezone=GMT%2B8 type: com.alibaba.druid.pool.DruidDataSource
3 测试
@Testvoid contextLoads() t