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

    技术2025-01-13  10

    文章目录

    背景数据库建立用户信息登记表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; -- ---------------------------- -- 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;

    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。

    输入用户信息并提交

    查看数据库用户信息表

    小结

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

    Processed: 0.009, SQL: 9