0
点赞
收藏
分享

微信扫一扫

Spring全家桶的深入学习(三):实现数据持久化


文章目录

  • ​​背景​​
  • ​​数据库​​
  • ​​建立用户信息登记表​​
  • ​​Web应用项目集成mysql​​
  • ​​使用JdbcTemplate实现数据持久化​​
  • ​​再次运行Web应用​​
  • ​​小结​​

背景

. 在上篇文章​​Spring全家桶的深入学习(二):基于SpringMVC开发web应用​​中基于SpringMVC框架构建了我们的web应用,并在视图层运用模板引擎展示数据及校验表单输入,本章将使用JdbcTemplate及Spring Data实现数据持久化的操作。

数据库

  • 一说到数据的持久化,首选方案就是关系型数据库,本文将使用互联网领域最常用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;

-- ----------------------------
-- Table structure for user
-- ----------------------------
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;

Spring全家桶的深入学习(三):实现数据持久化_java_02

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业务逻辑

/**
* 基于SpringMVC框架开发web应用--用户服务类
*
* @author zhuhuix
* @date 2020-07-03
* @date 2020-07-04 增加通过jdbcTemplate处理数据
*/
@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。
  • Spring全家桶的深入学习(三):实现数据持久化_web应用_03

  • 输入用户信息并提交
  • Spring全家桶的深入学习(三):实现数据持久化_web应用_04


  • Spring全家桶的深入学习(三):实现数据持久化_mysql_05

  • 查看数据库用户信息表
  • Spring全家桶的深入学习(三):实现数据持久化_mysql_06

小结

相对于普通的JDBC,Spring的JdbcTemplate能够极大地简化关系型数据库的使用。但是,你会发现使用JPA会更加简单。接下来我们会继续通过Spring Data框架让数据持久化变得更简单。


举报

相关推荐

0 条评论