Spring Data是为了简化构建基于Spring框架应用的数据访问技术,包括非关系数据库、Map-Reduce框架、云数据服务等等;也包含对关系数据库的访问支持
Spring Data提供数据访问模板类xxxTemplate,如MongoTemplate、RedisTemplate等
Spring Data为我们提供使用统一的API来对数据访问层进行操作,这主要是Spring Data Commons项目来实现的。Spring Data Commons让我们在使用关系型/非关系型数据访问技术时都基于Spring提供的统一标准,这个标准包含了CRUD(创建、获取、更新、删除)、查询、排序和分页等相关操作
JPA(Java Persistence API,java持久化API),是一种对象/关系映射的工具,管理java中的关系型数据,主要目的是简化现有的持久化开发工作和整合ORM(Object Relational Mapping,对象/关系映射)技术
JpaRepository基本功能:编写接口解成JpaRepository既有crud功能也有分页等基本功能
定义符合规范的方法命名:在接口中只需什么符合规范的方法,即拥有对于的功能
@Query自定义查询,定制查询SQL
Specification查询(Spring Data JPA支持JPA2.0的Criteria查询)
配置数据源(也可以像前面一样配置Druid,这里就直接用默认的)
spring: datasource: url: jdbc:mysql://localhost/sb-jpa?serverTimezone=UTC username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver initialization-mode: always #springboot2.x以上需要加这一句配置,不然无法执行sql和建表编写一个实体类(entity.User)和数据表进行映射,并且配置好映射关系
//使用JPA注解配置映射关系 @Entity//告诉JPA这是一个实体类(和数据表映射的类) @Table(name = "tbl_user")//指定和哪个数据表对应,如果省略默认表名就是user public class User { @Id//表明这是一个主键 @GeneratedValue(strategy = GenerationType.IDENTITY)//自增主键 private Integer id; @Column(name = "lastName",length = 50)//表明和数据库对应的一个列 private String lastName; @Column//省略默认列名就是属性名 private String email; //省略get/set方法和toString方法 }编写一个Dao接口来操作实体类对应的数据表(Repository)
//继承JpaRepository来完成对数据库的操作 public interface UserRepository extends JpaRepository<User,Integer> { }基本的JpaProperties配置
jpa: hibernate: # 更新或者创建数据表结构 ddl-auto: update # 控制台显示sql show-sql: true创建控制器方法controller.UserController
@RestController public class UserController { @Autowired UserRepository userRepository; @GetMapping("/user/{id}") public User getUser(@PathVariable("id") Integer id){ User user=userRepository.findById(id).get(); return user; } @GetMapping("/user") public User insertUser(User user){ User save = userRepository.save(user); return save; } }运行项目,在浏览器访问http://localhost:8080/user?lastName=tiaotiao&email=aa 再看看数据库 成功帮我们建表,同时插入了指定数据
该SpringBoot学习笔记学习自雷神前辈,是对知识点的整理和自我认识的梳理,如有不当之处,欢迎指出