版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
罗荣良SpringDataJPA基础本节学习目标1.理解ORM(对象关系映射)的核心思想2.辨析JPA、Hibernate与SpringDataJPA的关系3.掌握实体类(Entity)的常用注解配置4.掌握Repository接口的继承体系与使用5.实战:配置MySQL数据源并自动生成表痛点回顾:JDBC的繁琐JDBC代码(连接、SQL、ResultSet遍历)。问题:能否像操作Java集合一样操作数据库?什么是ORM?定义:Object-RelationalMapping(对象关系映射)。JavaObject(类/属性)<-->ORMBridge<-->DBTable(表/字段)作用:消除“阻抗不匹配”,自动转换数据。JPA:规范/接口(Sun/Oracle定义的标准)Hibernate:实现(最流行的ORM框架)SpringDataJPA:封装(Spring提供的更高级抽象)公式:SpringDataJPA>JPA>HibernateJPA:规范/接口(Sun/Oracle定义的标准)SpringDataJPA核心特性1.Repository接口:零SQL实现CRUD。2.方法名查询:findByName自动生成SQL。3.分页排序:内置PagingAndSorting支持。4.自动建表:根据Java类生成数据库表。实战第一步:引入依赖spring-boot-starter-data-jpamysql-connector-j(驱动)<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
实战第二步:配置数据源pertiesurl:jdbc:mysql://localhost:3306/...username/passwordddl-auto:update(自动更新表结构)spring.datasource.url=jdbc:mysql://localhost:3306/jpadb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
spring.jpa.show-sql=true实战第三步:定义实体类(Entity)代码截图:Student.java注解:@Entity(标记为实体)@Table(指定表名)@Id(主键)@Entity
@Table(name="student")
publicclassStudent{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
privateLongid;
//学号
@Column(name="xh",length=10)
privateStringxh;
//姓名
@Column(name="cn_name",length=20,nullable=false)
privateStringcnName;
实体类注解详解:主键策略@Id:必须有。@GeneratedValue:主键生成策略。strategy=GenerationType.IDENTITY(MySQL自增)AUTO(默认)@Column:name:数据库列名(默认驼峰转下划线)nullable:是否允许为空length:长度限制@Transient:忽略该字段(不映射到数据库)实体类注解详解:字段映射实体第四步:定义Repository代码截图:StudentRepository.java继承关系:extendsJpaRepository<Student,Long>泛型T:实体类类型(Student)泛型ID:主键类型(Long)publicinterfaceStudentRepositoryextendsJpaRepository<Student,Long>{
}
Repository接口继承体系Repository(标记接口)└──CrudRepository(增删改查)└──PagingAndSortingRepository(分页排序)└──JpaRepository(JPA特有功能)save(entity):保存或更新findById(id):根据ID查询findAll():查询所有deleteById(id):根据ID删除count():统计数量JpaRepository开箱即用的方法演示:自动建表的神奇效果启动SpringBoot应用。查看数据库:发现student表被自动创建了。原理:hibernate.ddl-auto=update演示:基本的CRUD测试在StudentService或测试类中调用studentRepository.save()和findAll()。强调:这就是“零SQL”开发。常见问题与避坑
1.实体类必须有无参构造函数(Lombok@NoArgsConstructor)。2.主键类型要与Repository泛型一致。3.ddl-a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年文旅营销生产排程优化合同
- 村委换届选举工作制度
- 预警预测预防工作制度
- 领导包保单位工作制度
- 领导应急值守工作制度
- 黄土地上农业工作制度
- 平凉地区庄浪县2025-2026学年第二学期四年级语文第七单元测试卷(部编版含答案)
- 东营市垦利县2025-2026学年第二学期三年级语文第八单元测试卷(部编版含答案)
- 青岛市市南区2025-2026学年第二学期三年级语文第八单元测试卷(部编版含答案)
- 酒泉地区阿克塞哈萨克族自治县2025-2026学年第二学期三年级语文第八单元测试卷(部编版含答案)
- 第5课 从小爱劳动 课件(内嵌视频) 2025-2026学年道德与法治三年级下册统编版
- 一年级数学10以内加减法计算专项练习题(每日一练共12份)
- 2026特种作业场内专用机动车辆作业考试题及答案
- (二模)苏北七市2026届高三第二次调研测试生物试卷(含答案)
- TCABEE080-2024零碳建筑测评标准(试行)
- 科大讯飞深度研究报告
- 2026内蒙古地质矿产集团有限公司所属矿山企业招聘230人笔试备考试题及答案解析
- (正式版)DB37∕T 4863-2025 《数字经济发展评价指标体系》
- 人教新课标曹禺和语文教师谈《雷雨》
- 情绪压力管理与阳光心态
- SB/T 10782-2012钟表销售服务规范
评论
0/150
提交评论