文章目录
背景数据库建立用户信息登记表Web应用项目集成mysql
使用JdbcTemplate实现数据持久化再次运行Web应用小结
背景
. 在上篇文章Spring全家桶的深入学习(二):基于SpringMVC开发web应用中基于SpringMVC框架构建了我们的web应用,并在视图层运用模板引擎展示数据及校验表单输入,本章将使用JdbcTemplate及Spring Data实现数据持久化的操作。
数据库
一说到数据的持久化,首选方案就是关系型数据库,本文将使用互联网领域最常用mysql数据库。
MySQL 最流行的关系型数据库管理系统,MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言,MySQL由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在互联网领域中。
建立用户信息登记表
根据用户信息模型类,设计用户信息登录表
DROP DATABASE IF EXISTS user_info
;
CREATE DATABASE user_info
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci
;
use user_info
;
SET NAMES utf8mb4
;
SET FOREIGN_KEY_CHECKS
= 0;
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id
` bigint(20) NOT NULL AUTO_INCREMENT,
`name
` varchar(255) CHARACTER SET utf8
COLLATE utf8_general_ci
NULL DEFAULT NULL,
`email
` varchar(255) CHARACTER SET utf8
COLLATE utf8_general_ci
NULL DEFAULT NULL,
PRIMARY KEY (`id
`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8
COLLATE = utf8_general_ci ROW_FORMAT
= Dynamic
;
SET FOREIGN_KEY_CHECKS
= 1;
Web应用项目集成mysql
增加依赖
<
!--Mysql依赖包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
<scope>runtime</scope>
</dependency>
<
!-- 数据库连接池
:druid数据源驱动
-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
Spring配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc
:mysql
://user_info
?serverTimezone=Asia/Shanghai
&characterEncoding=utf8
&useSSL=false
&allowPublicKeyRetrieval=true
使用JdbcTemplate实现数据持久化
Spring对JDBC的支持要归功于JdbcTemplate类。JdbcTemplate提供了一种特殊的方式,通过这种方式,开发人员在对关系型数据库执行SQL操作的时候能够避免使用JDBC时常见的繁文缛节和样板式代码。
增加依赖
<
!-- JDBC
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
修改UserService业务逻辑
@Service
public class UserService {
@Autowired
private JdbcTemplate jdbcTemplate
;
public List
<User> listUsers() {
return jdbcTemplate
.query("select id,name,email from user;",
new Object[]{}, new BeanPropertyRowMapper<>(User
.class));
}
public int saveUser(User user
) {
return jdbcTemplate
.update("insert into user(name,email) values(?,?);"
, user
.getName(), user
.getEmail());
}
}
再次运行Web应用
我们只修改了UserService用户服务类;控制器、视图模板都未做任何改变,接下来我们可以再次尝试运行一下。打开浏览器并访问http://localhost:8080/user。
输入用户信息并提交
查看数据库用户信息表
小结
相对于普通的JDBC,Spring的JdbcTemplate能够极大地简化关系型数据库的使用。但是,你会发现使用JPA会更加简单。接下来我们会继续通过Spring Data框架让数据持久化变得更简单。