使用JdbcTemplate访问数据库
SpringBoot
是为了简化Spring
应用的创建、运行、调试、部署等一系列问题而诞生的产物,自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖就可以轻易的搭建出一个 WEB 工程
Spring Framework
对数据库的操作在JDBC
上面做了深层次的封装,通过依赖注入
功能,可以将 DataSource
注册到JdbcTemplate
之中,使我们可以轻易的完成对象关系映射,并有助于规避常见的错误,在SpringBoot
中我们可以很轻松的使用它。
特点
- 速度快,对比其它的ORM框架而言,JDBC的方式无异于是最快的
- 配置简单,
Spring
自家出品,几乎没有额外配置 - 学习成本低,毕竟
JDBC
是基础知识,JdbcTemplate
更像是一个DBUtils
导入依赖
在 pom.xml
中添加对 JdbcTemplate
的依赖
1
|
<!-- Spring JDBC 的依赖包,使用 spring-boot-starter-jdbc 或 spring-boot-starter-data-jpa 将会自动获得HikariCP依赖 -->
|
连接数据库
在application.properties
中添加如下配置。值得注意的是,SpringBoot默认会自动配置DataSource
,它将优先采用HikariCP
连接池,如果没有该依赖的情况则选取tomcat-jdbc
,如果前两者都不可用最后选取Commons DBCP2
。通过spring.datasource.type
属性可以指定其它种类的连接池
1
|
spring.datasource.url=jdbc:mysql://localhost:3306/chapter4?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false
|
启动项目,通过日志,可以看到默认情况下注入的是HikariDataSource
1
|
2018-05-07 10:33:54.021 INFO 9640 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'dataSource' has been autodetected for JMX exposure
|
具体编码
完成基本配置后,接下来进行具体的编码操作。为了减少代码量,就不写UserDao
、UserService
之类的接口了,将直接在Controller
中使用JdbcTemplate
进行访问数据库操作,这点是不规范的,各位别学我…
表结构
创建一张 t_user
的表
1
|
CREATE TABLE `t_user` (
|
实体类
1
|
package com.battcn.entity;
|
restful 风格接口
1
|
package com.battcn.controller;
|
测试
由于上面的接口是 restful 风格的接口,添加和修改无法通过浏览器完成,所以需要我们自己编写junit
或者使用postman
之类的工具。
创建单元测试Chapter4ApplicationTests
,通过TestRestTemplate
模拟GET
、POST
、PUT
、DELETE
等请求操作
1
|
package com.battcn;
|
总结
本章介绍了JdbcTemplate
常用的几种操作,详细请参考JdbcTemplate API文档