内容简介:
一、Spring Data 简化 MySQL 数据访问
二、Spring Boot 2.5 实战 MySQL 数据库
三、Demo 一、Spring Data 简化 MySQL 数据访问
Spring 在 Spring boot 之后再应用开发、微服务架构以及数据链接上都提供了专门
的框架,大大简化开发工作,提升开发的效率。
Spring Data for MySQL 有很多技术可以用,比如 JDBC、JDBC Template、RM
框架或者 Hibernate My Business。
Spring Data 会整合框架,简化整个框架的配置。这里面有个非常重要的 Spring
Data 的子集叫 JPA,实际就是加上了一个持久化的 API,它其中有一块针对 MySQL 封
装底层的 Hibernate,也可以切换成 My Business。
1)快速数据访问框架,提供统一的编程模型
2)强大的 repository 仓储和自定义对象映射 ORM 抽象
3)从 repository 方法名称派生动态查询接口
4)实现 Domain 域基类提供基本属性
5)支持透明审计日志(创建,最后更改)
6)可以自定义 repository 代码
7)通过 JavaConfig 和自定义 XML 命名空间轻松实现 Spring 集成
8)与 Spring MVC 控制器的高级集成
9)跨库持久性的实验支持
Spring Data 针对各个数据源提供了统一的编程模型,其中有一个设计模式叫仓储
模式,仓储模式在数据访问层又做了一层封装,主要针对各种不同的数据库提供统一的
操作,有些默认接口直接生成不用再进行配置了。这个操作也可以结合其他的分层模型
来进行整合。
Spring Data 主要是做各种不同的数据源的对接工作。有传统的关系型数据库也有
非关系型数据库等等都可以和它进行集成。
Spring Data 架构主要分成了关系型数据库和关系型数据库。JPA 底层使用 JDBC。
本次主要对关系型据库的一系列操作,后面对于访问 Redis 以及 MongoDB 后续课
程也有对应的实战案例。
1)Spring Data Commons - 支持每个 Spring Data 模块的 Core Spring 概念。
2)Spring Data JDBC - 对 JDBC 的 Spring Data 存储库支持。
3)Spring Data JDBC Ext - 支持标准 JDBC 的数据库特定扩展,包括对 Oracle
RAC 快速连接故障转移的支持,AQ JMS 支持以及对使用高级数据类型的支持。
4)Spring Data JPA - JPA 的 Spring Data 存储库支持。
5)Spring Data KeyValue - 基于映射的存储库和 SPI,可轻松构建用于键值存储
的 Spring Data 模块。
6)Spring Data LDAP - 对 Spring LDAP 的 Spring Data 存储库支持。
7)Spring Data MongoDB - 基于 Spring 的对象文档支持和 MongoDB 的存储库。
8)Spring Data Redis - 从 Spring 应用程序轻松配置和访问 Redis。
9)Spring Data REST - 将Spring Data存储库导出为超媒体驱动的RESTful资源。
10)Spring Data Apache Cassandra - 轻松配置和访问 Apache Cassandra 或大
规模,高可用性。
11)Spring Data Apache Geode - 轻松配置和访问 Apache Geode。
12)Spring Data Apache Solr - 为面向搜索的 Spring 应用程序轻松配置和访问
Apache Solr。
13)Spring Data Pivotal GemFire - 轻松配置和访问 Pivotal GemFire。
1)Spring JDBC and JdbcTemplate
2)Spring Data JPA and Hibernate framework
3)Spring Data 简化连接不同的数据库
4)使用 Spring Data JPA 框架连接 MySQL
5)当然也可以使用原始的 JDBC
6)默认底层使用 Hibernate 框架
7)支持 Repository 仓储模式
8)引入最重要的 2 个包
9)spring-boot-starter-data-jpa
10)mysql-connector-java
JPA 默认一个 RM 框架叫 Hibernate 框架。我们在对接的时候,需要大家去引几个
包。作为 Spring boot 严格来说是有个傻瓜式编程,要简化配置。但是我们手动引入一
个叫 JDBC 的包,然后再去配置数据库链接参数,数据库地址以及用户密码这些参数还
是要自己设置。
对于初始化依赖,可以使用 starter-data-jpa 这样的一个依赖包。这里面还涉及到
JdbcTemplate,这是 Spring 提供了一个非常重要的数据库操作的接口。
在定义接口的时候,特殊的查询可能需要编写一些特殊的语句,下面来看一下具体
的一个实现。
加入数据库访问链接,这里面有个 spring data starter 的 JPA。加进来以后我们从
数据库底层手动引一下 MySQL-connector,里面 devtools 主要做自动化调试,方便进
行程序的开发配置。改完代码以后不用重启,就会自动重新加载变化的数据配置文件。
Database platform 在这里面指的是 hibernate。Model 在这里面指的是实体,和数
据库直接对应。相比之前 Spring data 对应的数据源要配置一下。代码中有几个重要的
参数分别是 url、username 以及 password。
Spring Data Jpa 是链接 MySQL 数据库重要的组件,在配置的时候要注意底层的
MySQL connection。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DzmkbGDF-1667462344320)(https://s2.loli.net/2022/11/03/uaqViGmIDdo7lFA.png)]
内容简介:
一、Spring Boot 2.5 实战 MongoDB 数据库
二、NoSQL 排名第一 MongoDB
三、安装 MongoDB 数据库
四、Spring Data 实战 MongoDB 数据库
五、本节课高级面试题
MongoDB 是文档型数据库,较灵活,容易做集群搭建,在互联网公司运用广泛。
1)NoSQL 排名第一,BAT 互联网公司必备
2)分布式数据库
3)由 C++语言编写,特点是高性能、易部署、易使用、存储数据非常方便
4)旨在为 Web 应用提供可扩展的高性能数据存储解决方案
5)MongoDB 由 10gen 团队所开发,于 2009 年 2 月首度推出
6)MongoDB 开源、跨平台
7)支持 Windows、Linux、OS X 和 Solaris 系统
8)MongoDB 最新版本为 4.0,支持跨文档事务
1)灵活的数据模型
2)便于横向拓展
3)自动分片存储
4)支持分布式查询
5)集成内存缓存
6)高性能高并发
4. #### MongoDB 的典型行业案例
推荐大家用 3.0 以后的版本,因为 3.0 以后默认 Wiredtiger,性能、稳定性更强大,
4.0 以后基本上也支持分布式事务 Transaction,包括分片集群、复制集群事务,其他并
行异步复制等,提升了针对大容量数据库迁移的优化。
官方下载,windows 可以直接下,Linux 直接用命令,安装后启动 MongoDB 服务。
2. #### 安装最新 MongoDB
Robomongo
Robo 3T
Compass
> show dbs
admin 0.000GB
config 0.000GB • local 0.000GB
> show users
> show collections
> use Alibaba
switched to db alibaba
> db.users.insert({“name”:“Java”}) WriteResult({ “nInserted” : 1 }) > db.users.insert({“name”:“mongo”,“age”:18}) WriteResult({ “nInserted” : 1 }) > db.users.find() • { “_id” :ObjectId(“604ca8c13bfab2e14d4927d4”), “name” : “Java” } { “_id” : ObjectId(“604ca8e33bfab2e14d4927d5”), “name” : “mongo”, “age” :
18 }
> db.users.insert({“name”:“frank”,“password”:“1234”,“age”:18})
WriteResult({ “nInserted” : 1 }) • > db.users.find() { “_id” : ObjectId(“604ca8c13bfab2e14d4927d4”), “name” : “Java” } _
{ “_id” : ObjectId(“604ca9623bfab2e14d4927d6”), “name” : “frank”, “passwor
d” : “1234”, “age” : 18 }
1)简化 Java 的 MongoDB 数据库开发 API
2)提供一致的基于 Spring 的编程模型
3)Spring configuration 支持@Configuration classes or an XML namespace
4)方便编写 Repository 仓储模式的 DAO 层代码
5)自动实现 Repository interface 的 CRUD 常用操作
6)自动进行 POJO 和 MongoDB 文档数据的映射转换, Spring’s Conversion
Service
7)可以自定义扩展方法
8)MongoTemplate helper class 提升 MongoDB 开发效率
9)Low-level mapping using MongoReader/MongoWriter abstractions
10)Java based Query, Criteria, and Update DSLs
11)Log4j log appender
12)GeoSpatial 集成
13)Map-Reduce 集成
14)JMX administration and monitoring
15)CDI support for repositories
16)GridFS 支持
public interface BlogRepository extends MongoRepository
public Blog findById(objectId id);
public void delete (objectId id);
public List findAll();
}
Repository 仓储层代码,实际大大的简化了整个数据库编程,但是底层基础还是需要
大家去使用,作为应用开发人员,使用接口越方便越简单效率越高,但是底层实现需要
我们花时间去研究学习。
库编程,但是底层基础还是需要
大家去使用,作为应用开发人员,使用接口越方便越简单效率越高,但是底层实现需要
我们花时间去研究学习。