SpringBoot(3):SpringData 数据访问
一. 简介
Spring Data是一个用于简化数据库访问,并支持云服务的开源框架;其主要目标是 使得对数据的访问变得方便快捷。对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库)。Spring Boot 底层都是采用 Spring Data 的方式进行统一处理各种数据库
Sping Data 官网:https://spring.io/projects/spring-data
二. JDBC
1.新建一个项目:springboot-date 引入相应的模块

项目建好之后,springboot会自动帮我们导入了如下的启动器

2.用IDEA连接上自己的数据库,实现数据库的访问
3.SpringBoot中,我们需要进行简单的配置,用于实现数据库的连接
在resources下创建application.yml配置
1 spring:
2 datasource:
3 username: root
4 password: 123456
5 #?serverTimezone=UTC解决时区的报错
6 url: jdbc:mysql://localhost:3306/ssm-books?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
7 driver-class-name: com.mysql.jdbc.Driver
4.配置完数据库的东西后,我们就可以直接去使用了,因为SpringBoot已经默认帮我们进行了自动配置;我们去测试类测试一下
1 @RunWith(SpringRunner.class)
2 @SpringBootTest
3 public class SpringbootDataApplicationTests {
4
5 //DI注入数据源
6 @Autowired
7 DataSource dataSource;
8
9 @Test
10 public void contextLoads() throws SQLException {
11
12 System.out.println("默认数据源:" + dataSource.getClass());
13 //获得连接
14 Connection connection = dataSource.getConnection();
15 //关闭连接
16 connection.close();
17 }
18 }
我们可以看到他默认给我们配置的数据源为:class com.zaxxer.hikari.HikariDataSource 我们并没有手动配置
有了数据库连接,显然就可以 CRUD 操作数据库了

三. CRUD 操作
1.有了数据源(com.zaxxer.hikari.HikariDataSource) 和 数据库连接(java.sql.Connection),就可以使用连接和原生的 JDBC 语句来操作数据库
2.即使不使用第三方第数据库操作框架,如 MyBatis等,Spring 本身也对原生的 JDBC 做了轻量级的封装,即 org.springframework.jdbc.core.JdbcTemplate
3.数据库操作的所有 CRUD 方法都在 JdbcTemplate 中
4.SpringBoot 不仅提供了默认的数据源,同时默认已经配置好了 JdbcTemplate 放在了容器中,我们只需注入即可使用
5.JdbcTemplate 的自动配置原理是依赖 org.springframework.boot.autoconfigure.jdbc 包下的 org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration 类
JdbcTemplate主要提供以下几类方法
execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句
update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句
query方法及queryForXXX方法:用于执行查询相关语句
call方法:用于执行存储过程、函数相关语句
代码测试
1 import org.springframework.beans.factory.annotation.Autowired;
2 import org.springframework.jdbc.core.JdbcTemplate;
3 import org.springframework.web.bind.annotation.PathVariable;
4 import org.springframework.web.bind.annotation.RequestMapping;
5 import org.springframework.web.bind.annotation.RestController;
6
7 import java.util.List;
8 import java.util.Map;
9
10 @RestController
11 public class JdbcController {
12
13 //JdbcTemplate 会自己注入数据源
14 @Autowired
15 JdbcTemplate jdbcTemplate;
16
17 //1.查询
18 @RequestMapping("/all")
19 public List<Map<String, Object>> all() {
20 //插入语句
21 String sql = "select * from books";
22 //查询
23 List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
24 return maps;
25 }
26
27 //2.增加
28 @RequestMapping("/add")
29 public String add() {
30 String sql = "insert into books (bookId,bookName,bookNumber,bookPrice) values (4,'红楼梦',8,88)";
31 jdbcTemplate.update(sql);
32 return "插入成功";
33 }
34
35 //3.删除
36 @RequestMapping("/del/{id}")
37 public String del(@PathVariable("id") Integer id) {
38 String sql = "delete from books where bookId=?";
39 jdbcTemplate.update(sql, id);
40 return "删除成功";
41 }
42
43 //4.修改
44 @RequestMapping("/update/{id}")
45 public String update(@PathVariable("id") Integer id) {
46 String sql = "update books set bookName=?,bookNumber=?,bookPrice=? where bookId="+id;
47 //数据
48 Object[] objects = new Object[3];
49 objects[0] = "平凡的世界";
50 objects[1] = 5;
51 objects[2] = 55;
52 jdbcTemplate.update(sql, objects);
53 return "修改成功";
54 }
55 }
测试页面!!!
SpringBoot(3):SpringData 数据访问的更多相关文章
- 【SpringBoot实战】数据访问
前言 在开发中我们通常会对数据库的数据进行操作,SpringBoot对关系性和非关系型数据库的访问操作都提供了非常好的整合支持.SpringData是spring提供的一个用于简化数据库访问.支持云服 ...
- SpringBoot+MyBatis简单数据访问应用
因为实习用的是MyBatis框架,所以写一篇关于SpringBoot整合MyBatis框架的总结. 一,Pom文件 <?xml version="1.0" encoding= ...
- SpringBoot起飞系列-数据访问(九)
一.前言 前边我们已经学些了开发的基本流程,最重要的一步来了,怎么样和数据库交互才是最重要的,毕竟没有数据那就相当于什么也没做,本文我们来学习使用springboot整合jdbc.mybatis.jp ...
- SpringBoot之旅第五篇-数据访问
一.引言 大部分系统都离不开数据访问,数据库包括SQL和NOSQL,SQL是指关系型数据库,常见的有SQL Server,Oracle,MySQL(开源),NOSQL是泛指非关系型数据库,常见的有Mo ...
- Springboot数据访问,棒棒哒!
Springboot对数据访问部分提供了非常强大的集成,支持mysql,oracle等传统数据库的同时,也支持Redis,MongoDB等非关系型数据库,极大的简化了DAO的代码,尤其是Spring ...
- java框架之SpringBoot(9)-数据访问及整合MyBatis
简介 对于数据访问层,无论是 SQL 还是 NOSQL,SpringBoot 默认采用整合 SpringData 的方式进行统一处理,添加了大量的自动配置,引入了各种 Template.Reposit ...
- 六、SpringBoot与数据访问
六.SpringBoot与数据访问 1.JDBC spring: datasource: username: root password: 123456 url: jdbc:mysql://192.1 ...
- SpringBoot详细研究-02数据访问
Springboot对数据访问部分提供了非常强大的集成,支持mysql,oracle等传统数据库的同时,也支持Redis,MongoDB等非关系型数据库,极大的简化了DAO的代码,尤其是Spring ...
- SpringBoot:Mybatis + Druid 数据访问
西部开源-秦疆老师:基于SpringBoot 2.1.7 的博客教程 秦老师交流Q群号: 664386224 未授权禁止转载!编辑不易 , 转发请注明出处!防君子不防小人,共勉! 简介 对于数据访问层 ...
随机推荐
- FastJson 解析、序列化及反序列化
一.环境准备:使用maven特性在pom.xml中导入fastjson的依赖包 <!-- https://mvnrepository.com/artifact/com.alibaba/fastj ...
- CURD系统怎么做出技术含量--怎样引导面试
引子 很多朋友可能会因为自己做的工作不是特别核心或者业务简单而引起面试中没有自信.但是很多公司面试的时候是可以接受面试者之前岗位的并发量.交易量低一些的.比如我们要招聘和我们交易量同等级或者以上的出来 ...
- 【Java】IO流
File类 介绍 File类的一个对象,代表一个文件或一个文件目录 File类声明在java.io包下 File类中涉及关于文件或文件目录的创建.删除.重命名.修改时间.文件大小等方法,并未涉及到写入 ...
- webpack 之js兼容性处理
webpack 之js兼容性处理 // 用来拼接绝对路径的方法 const {resolve} = require('path') const HtmlWebpackPlugin = require( ...
- USB3.0 转USB3.0
前段时间因为项目需求需要将相机的USB3.0口转接出来,心想那还不想简单,结果第一次就碰壁了:先说一下usb3.0的引脚定义如图: 九个脚,2个地:注意USB3.0转3.0时数据线全交叉,DM-和DP ...
- 大爽Python入门教程 2-1 认识容器
大爽Python入门公开课教案 点击查看教程总目录 1 什么是容器 先思考这样一个场景: 有五个学生,姓名分别为: Alan, Bruce, Carlos, David, Emma. 需要给他们都打一 ...
- 『学了就忘』Linux软件包管理 — 45、yum源文件详细说明
目录 1.yum源文件解析 2.查看yum源文件 3.搭建本地光盘yum源 第一步: 第二步: 第三步: 提示:RPM包的在线安装就是yum安装,yum安装需要依据yum源文件内容配置来寻找软件.本文 ...
- SpringCloud升级之路2020.0.x版-36. 验证断路器正确性
本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 上一节我们通过单元测试验证了线程隔离的正确性,这一节我们来验证我们断路器的正确性,主要包括 ...
- Javascript复制内容到剪贴板,解决navigator.clipboard Cannot read property 'writeText' of undefined
起因 最近帮同事实现了一个小功能--复制文本到剪贴板,主要参考了前端大神阮一峰的博客,根据 navigator.clipboard 返回的 Clipboard 对象的方法 writeText() 写文 ...
- 深入理解Redis 数据结构—双链表
在 Redis 数据类型中的列表list,对数据的添加和删除常用的命令有 lpush,rpush,lpop,rpop,其中 l 表示在左侧,r 表示在右侧,可以在左右两侧做添加和删除操作,说明这是一个 ...