SpringBoot JDBC 整合
# JDBC 应用
SpringBoot 中默认自动配置有 HikariCP连接池(HikariCP连接池是目前最快的连接池)
引入依赖
pom.xml
文件<!--jdbc--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!--测试--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <!--mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</version> </dependency>
连接数据库 mysql的依赖 ,需要添加依赖 和 自行配置版本号。因 该依赖并非是 SpringBoot的相关组件
在SpringBoot的 全局属性(application.properties文件) 添加参数
# 连接四大参数 spring.datasource.url=jdbc:mysql://localhost:3306/库名 spring.datasource.username=root spring.datasource.password=root # 可省略,SpringBoot自动推断 #spring.datasource.driverClassName=com.mysql.jdbc.Driver #spring.datasource.hikari.idle-timeout=60000 #spring.datasource.hikari.maximum-pool-size=30 #spring.datasource.hikari.minimum-idle=10
创建 User实体类 (指定库中的表列属性信息)
public class User implements Serializable { private Long id; // 用户名 private String userName; // 密码 private String password; // 姓名 private String name; // 年龄 private Integer age; // 性别,1男性,2女性 private Integer sex; // 出生日期 private Date birthday; //省略 get 、 set 和 toString }
表列名 和 类属性名 一致,在这一说法的前提它们支持 驼峰命名 和 下划线命名 如: (库列名) user_name -> (类属性名)userName
创建 JdbcDao操作类
@Repository public class JdbcDao { @Autowired private JdbcTemplate jdbcTemplate; public List<User> findAll() { // BeanPropertyRowMapper : 可将同名的字段赋值给属性 (支持驼峰、下划线) return jdbcTemplate.query("select * from tb_user" , new BeanPropertyRowMapper<>(User.class)); } }
测试
@RunWith(SpringRunner.class) @SpringBootTest public class JdbcDaoTest extends TestCase { @Autowired private JdbcDao jdbcDao; @Test public void testFindAll() { System.out.println("jdbcDao : " + jdbcDao); for (User user : jdbcDao.findAll()) { System.out.println(user); } } }