栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring Boot从入门到精通(九)整合Spring Data JPA应用框架

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Boot从入门到精通(九)整合Spring Data JPA应用框架

JPA是什么?

JPA全称Java Persistence API,是Sun官方提出的Java持久化规范。是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

JPA主要为了简化现有的Java EE和Java SE应用的对象持久化开发工作和整合ORM技术实现持久化领域的统一。JPA是在充分吸收了现有Hibernate,TopLink,JDO等ORM框架的基础上发展而来的,具有易于使用,伸缩性强等优点。从目前的开发社区的反应上看,JPA受到了极大的支持和赞扬,其中就包括了Spring与EJB3.0的开发团队。

Spring Data JPA是什么?

Spring Data JPA是Spring基于ORM框架、JPA规范的基础上封装的一套JPA应用框架,底层使用了Hibernate JPA技术来实现的,可以使开发者用极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!使用Spring Data JPA可以极大提高开发效率。

本篇文章主要讲述一下如何使用Spring Boot框架整合Spring Data JPA应用框架,欢迎朋友们关注“Java精选”微信公众号,每日持续推荐优质文章,下面进入正题。

Spring Data JPA项目

1、Maven构建项目

1)Spring Boot官网:http://start.spring.io/

2)选择构建工具

Spring Boot官网选择构建不同类型的项目其选项的各个参数含义可以参考之前写的“Spring Boot从入门到精通(一)搭建第一个Spring Boot程序”章节,Spring Boot从入门到精通是一整篇系列的文章集,来自于“Java精选”微信公众号,欢迎感兴趣的朋友关注。

Maven构建项目时依赖Spring Data JPA包,本步骤的其他细节参数省略,具体参考如下截图:

3)点击“Generate-Crtl+”按钮下载项目压缩包,解压后使用IntelliJ IDEA开发工具,选择导航栏File->Project Structure… -> + ,导入Maven项目后点击“OK”,如图所示:

4)选中右侧Maven菜单,执行install命令,等待执行完成(时间太长的话重复执行几遍试试或者换Maven数据源),如图所示:

2、修改pom.xml文件

增加MySQL数据库驱动包,修改完配置文件后需重新执行Maven命令,不然所依赖的包可能会引用无效,具体配置信息如下:


    mysql
    mysql-connector-java

之前有朋友问为什么不需要指定包?在这里解释一下。


spring-boot-starter-parenth已经提供了常用的jar包版本,若指定版本号会覆盖官方推荐版本,使用maven helper查看一下有没有冲突即可。

3、配置数据源信息
在application.properties配置文件中,增加内容如下:

#数据库
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/dba
spring.datasource.username=root
spring.datasource.password=123456
spring.jpa.hibernate.ddl-auto=none
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
 
#端口号
server.port=8080
 
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.type=trace
spring.jpa.properties.hibernate.use_sql_comments=true
spring.jpa.properties.hibernate.jdbc.batch_size=50
logging.level.org.hibernate.type.descriptor.sql=trace

4、编写BootUser类文件BootUser类实体对应MySQL数据库表的字段属性值,具体代码如下:

package com.yoodb.study.demo05.entity;
 
import javax.persistence.*;
import java.io.Serializable;
 
@Entity
@Table(name="boot_user")
public class BootUser implements Serializable {
    @Id
    //strategy=GenerationType.IDENTITY 自增长
    @GeneratedValue(strategy= GenerationType.IDENTITY)
    @Column(name="id")
    private String id;
 
    @Column(name="user_name")
    private String name;
 
    @Column(name="detail")
    private String detail;
 
    public String getId() {
        return id;
    }
 
    public void setId(String id) {
  this.id=id;
}
 
publicStringgetName(){
returnname;
}
 
publicvoidsetName(Stringname){
this.name=name;
}
 
publicStringgetDetail(){
returndetail;
}
 
publicvoidsetDetail(Stringdetail){
this.detail=detail;
}
}

5、编写Repository文件新增UserRepository类文件,具体代码如下:

package com.yoodb.study.demo05.repository;
 
import com.yoodb.study.demo05.entity.BootUser;
import org.springframework.data.jpa.repository.JpaRepository;
 
public interface UserRepository extends JpaRepository {
 
}

6、编写单元测试类文件新增UsersDaoImplTest类文件,具体代码如下:

package com.yoodb.study.demo05;
 
import com.yoodb.study.demo05.repository.UserRepository;
import com.yoodb.study.demo05.entity.BootUser;
 
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.Rollback;
 
import javax.transaction.Transactional;
 
@SpringBootTest
public class UsersDaoImplTest  {
    @Autowired
    private UserRepository userRepository;
 
    
 @Test
@Transactional//对于事务提交方式默认回滚
@Rollback(false)//取消自动回滚
publicvoidtestInsertUsers(){
BootUserusers=newBootUser();
users.setName("关注微信公众号“Java精选”");
users.setDetail("SpringBoot从入门到精通系列文章持续更新中,带你从入门到精通,玩转SpringBoot框架。");
this.userRepository.save(users);
}
 
}

7、单元测试在IntelliJ IDEA运行单元测试时提示错误,信息如下:

Error running 'UsersDaoImplTest.testInsertUsers': Failed to resolve org.junit.platform:junit-platform-launcher:1.6.0

问题分析:这是由于IntelliJ试图在不使用IDEA中配置的Maven settings.xml配置文件的情况下,直接连接至Maven Central仓库来执行单元测试,但由于个人配置参数导致无法连接成功。解决办法:在Maven项目中pom.xml文件中增加依赖包,具体配置内容如下:


    org.junit.platform
    junit-platform-launcher
    test

再次,执行单元测试即可正常运行。

最主要的是给自己增加知识的储备,有备无患。最后给大家分享Spring系列的学习笔记和面试题,包含spring面试题、spring cloud面试题、spring boot面试题、spring教程笔记、spring boot教程笔记、最新阿里巴巴开发手册(63页PDF总结)、2022年Java面试手册。一共整理了1184页PDF文档。私信博主(666)领取,祝大家更上一层楼!!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/855525.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号