6.SpringBoot整合JDBC
第一步:创建一个新的SpringBoot项目选择web模块和数据驱动模块和JDBC场景启动器
第二步:创建yml配置文件并指定相关数据源配置信息
spring:
datasource:
username: root
password: root
url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
driver-class-name: com.mysql.cj.jdbc.Driver
第三步:连接数据库
- 最右侧database然后将自己数据库添加进来。
第四步:测试SpringBoot默认数据源
- 先讲DataSource注入 再在测试类方法中输入
System.out.println(dataSource.getClass());
- 可以发现SpringBoot默认数据源是Hikari
看看源码分析一下为什么默认数据源是Hikari
- 根据SpringBoot自动配置原理,可以首先可以找到org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration自动配置类
SpringBoot帮我们装配了很多XXXTemplate模板,我们可以很方便的使用
- 例如JDBCTemplate
- JdbcTemplate中有很多操作的方法
测试JdbcTemplate的使用
- 编写实体类
package com.yingge.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Integer id;
private String username;
private Integer age;
private String gender;
}
- 编写controller接口
@RestController
public class JDBCController {
@Autowired
JdbcTemplate jdbcTemplate;
@RequestMapping("/findAll")
public List<Map<String,Object>> findAll(){
String sql ="select * from user ";
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
return list;
}
}
- 测试结果
- SpringBoot整合JDBC三种方法
@RequestMapping("/findById1")
public List<Map<String,Object>> findById1(){
String sql ="select * from user where id=1";
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
return list;
}
@RequestMapping("/findById2/{id}")
public List<Map<String,Object>> findById2(@PathVariable("id") Integer id){
String sql ="select * from user where id="+id;
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
return list;
}
@RequestMapping("/findById3/{id}")
public List<Map<String,Object>> findById3(@PathVariable("id") Integer id){
String sql ="select * from user where id=?";
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql,id);
return list;
}