赵走x博客
网站访问量:151416
首页
书籍
软件
工具
古诗词
搜索
登录
32、使用MyBatis注解实现数据库操作
31、MyBaties使用XML配置文件实现数据库操作
30、Spring Boot构建MyBatis应用程序
29、MyBatis简介
28、实战:实现JdbcTemplate多数据源
27、使用JdbcTemplate操作数据库
26、JdbcTemplate入门
25、实战:实现Web API版本控制
24、使用Swagger生成Web API文档
23、Thymeleaf页面布局
22、Thymeleaf内置对象、内嵌变量
21、Thymeleaf内联
20、Thymeleaf语法
19、Thymeleaf表达式
18、Thymeleaf入门
17、全局异常处理
16、实战:实现优雅的数据返回
15、跳转指定页面
14、Spring Boot静态资源
13、Spring Boot数据转换配置
12、跨域访问
11、Web配置
10、过滤器
9、拦截器
8、数据验证
7、参数传递
6、URL映射
5、@ResponseBody
4、@RequestMapping
3、@Controller和@RestController
2、Web项目结构
1、spring-boot-starter-web介绍
26、JdbcTemplate入门
资源编号:551854
热度:104
26、JdbcTemplate入门
本节从基础的部分开始介绍什么是JDBC、什么是JdbcTemplate,然后介绍Spring Boot项目如何使用JdbcTemplate操作数据库。 # 一、JdbcTemplate简介 ### 1. 什么是JDBC JDBC(Java Data Base Connectivity,Java数据库连接)是Java语言中用来规范应用程序如何访问数据库的API,为多种关系数据库提供统一访问方式,诸如查询和更新数据库中数据的方法。 JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。 ### 2. 什么是JdbcTemplate JDBC作为Java访问数据库的API规范,统一了各种数据库的访问方式,但是直接在Java程序中使用JDBC还是非常复杂和烦琐的,所以Spring对JDBC进行了更深层次的封装,而JdbcTemplate就是Spring提供的操作数据库的便捷工具。 它主要实现数据库连接的管理,我们可以借助JdbcTemplate来执行所有数据库操作,例如查询、插入、更新、删除等操作,并且有效地避免了直接使用JDBC带来的烦琐编码。 Spring Boot作为Spring的集大成者,自然会将JdbcTemplate集成进去。 Spring Boot针对JDBC的使用提供了对应的Starter:spring-boot-starter-jdbc,它其实就是在Spring JDBC上做进一步的封装,方便在Spring Boot项目中更好地使用JDBC。 ### 3. JdbcTemplate的特点 - 速度快,相对于ORM框架,JDBC的方式是最快的。 - 配置简单,Spring封装的除了数据库连接之外,几乎没有额外的配置。 - 使用方便,它更像DBUtils工具类,只需注入JdbcTemplate对象即可。 ### 4. JdbcTemplate的几种类型的方法 JdbcTemplate虽然简单,但是功能非常强大,它提供了非常丰富、实用的方法,归纳起来主要有以下几种类型的方法: - 1)execute()方法:可以用于执行任何SQL语句,一般用于执行DDL语句。 - 2)update()、batchUpdate()方法:用于执行新增、修改与删除等语句。 - 3)query()和queryForXXX()方法:用于执行查询相关的语句。 - 4)call()方法:用于执行数据库存储过程和函数相关的语句。 总的来说,新增、删除与修改3种类型的操作主要使用update()和batchUpdate()方法来完成。 query()和queryForObject()方法主要用来完成查询功能。 execute()方法可以用来创建、修改、删除数据库表。 call()方法则用来调用存储过程。 在大部分情况下,我们都会使用更加强大的持久化框架来访问数据库,比如MyBatis、Hibernate或者Spring Data JPA。 之所以介绍JdbcTemplate这种基础的数据库框架,只是希望读者能从基础开始学习,只有掌握了这些基础的框架才能更好地学习其他复杂的ORM框架。 # 二、Spring Boot集成JdbcTemplate Spring Boot集成JDBC很简单,只需要引入依赖并进行基础配置即可。接下来以一个具体的例子来学习如何利用Spring的JdbcTemplate进行数据库操作。 ### 步骤01 添加依赖配置。 在pom.xml配置文件中增加JDBC等相关依赖: ```
org.springframework.boot
spring-boot-starter-jdbc
mysql
mysql-connector-java
``` 在上面的示例中,在pom.xml文件中引入spring-boot-starterjdbc依赖。同时,由于项目中使用MySQL作为数据库,因此项目中需要引入MySQL驱动包。spring-boot-starter-jdbc直接依赖于HikariCP和spring-jdbc。 - HikariCP是Spring Boot 2.0默认使用的数据库连接池,也是传说中最快的数据库连接池。 - spring-jdbc是Spring框架对JDBC的简单封装,提供了一个简化JDBC操作的开发工具包。 ### 步骤02 创建数据库及表结构。 首先创建jdbctest测试数据库,然后创建student表,包括id、name、sex、age等字段,对应的SQL脚本如下: ``` DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id', `name` varchar(32) DEFAULT NULL COMMENT '姓名', `sex` int DEFAULT NULL, `age` int DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;; ``` ### 步骤03 配置数据源。 在application.properties中配置MySQL数据库连接相关内容。具体配置如下: ``` spring.datasource.url=jdbc:mysql://localhost:3306/jdbctest?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 在上面的示例中,数据库连接配置非常简单,包括数据库连接地址、用户名、密码以及数据驱动,无须其他额外配置。 在Spring Boot 2.0中,com.mysql.jdbc.Driver已经过期,推荐使用com.mysql.cj.jdbc.Driver。 ### 步骤04 使用JdbcTemplate。 上面已经把JdbcTemplate集成到Spring Boot项目中,并创建了数据。接下来创建一个单元测试类JdbcTests,验证JdbcTemplate操作数据库。示例代码如下: ``` @RunWith(SpringRunner.class) @SpringBootTest class JdbcTests { @Autowired JdbcTemplate jdbcTemplate; @Test void querytest() throws SQLException { List
> list = jdbcTemplate.queryForList("select * from student "); System.out.println(list.size()); Assert.assertNotNull(list); Assert.assertEquals(1,list.size()); } } ``` 上面是简单地使用JdbcTemplate的测试示例,Spring的JdbcTemplate是自动配置的。使用@Autowired将JdbcTemplate注入需要的Bean中即可直接调用。 单击Run Test或在方法上右击,选择Run 'querytest',运行测试方法,结果如图7-1所示。  单元测试queryTest运行成功,并输出了相应的结果。这说明JdbcTemplate已经连接上数据库,并成功执行了数据查询操作。 以上就把JdbcTemplate集成到Spring Boot项目中了。