Spring Data JPA基础增删改查功能

2025-05-06 13:30:01

1、首先我们利用上一篇文章已经创建好的Spring Data JPA开发环境,在User实体类的基础上菀蒯踔观我们创建UserRepository接口,该接口继承了JpaRepository接口,如下图所示。我们可以看到UserRepository接口的继承关系,在IDE菜单栏中选择Navigate-->File Structure命令,我们可以查看到UserRepository默认拥有的方法,findOne()、findAll()、save()、delete()、count()、exists()等。

Spring Data JPA基础增删改查功能
Spring Data JPA基础增删改查功能
Spring Data JPA基础增删改查功能

2、接下来我们创建一个UserController类,在该类中直接注入UserRepository进行数据库的操作,注意在开发中我们还有一贫脊雪赙层Service业务层,此处为了讲解方便省略了。该Controller中的注解@RestController是必须的,表明这是一个Restful的请求,同时接口的返回会自动转为Json@RequestMapping(value = "/user")是请求路径此处可以省略。

Spring Data JPA基础增删改查功能

3、下面我们开始写新增用户的方法,直接调用UserRepository的save()方法,如下图所示,需要注意在参数名称要跟实际传参的参数名称一致时,使用@RequestParam(value="username") String name映射传参。方法编写完成后我们启动上文创建的UserJpaApplication这个启动类,然后用postman去测试接口的返回,如下图所示。

Spring Data JPA基础增删改查功能
Spring Data JPA基础增删改查功能

4、新增写完后我们再看一下修改方法,修改数据实际上用的也是UserRepository的save()方法,传参使用实体类传参,会根据实体类对应的数据库主键id去更新其他的字段,如下图所示。

Spring Data JPA基础增删改查功能
Spring Data JPA基础增删改查功能

5、我们再看一下批量新增和批量修改的方法,其实也是用了UserRepository的save()方法。我们在上文中配置了打印sql,因为我们可以看到控制台执行的sql语句,这种批量操作的方法不好的一点是,所谓批量新增只是一个一个去执行新增方法而已,在数据量大的时候影响效率,源码中是通过for循环来实现的,如下图所示。

Spring Data JPA基础增删改查功能
Spring Data JPA基础增删改查功能
Spring Data JPA基础增删改查功能
Spring Data JPA基础增删改查功能
Spring Data JPA基础增删改查功能

6、接下来便是查询和删除的接口了,查询方法提供了全量查询和单个查询的方法,如findAll()和findOne(),删除直接调用UserRepository的delete()方法即可,代码及postman的请求结果如下图所示。

Spring Data JPA基础增删改查功能
Spring Data JPA基础增删改查功能
Spring Data JPA基础增删改查功能
Spring Data JPA基础增删改查功能

7、最后介绍一下因为数据库编码问题导致的常见报错,错误信息如下图所示,“Incorrect string value : '\xE9\x98\xBF\xE8\x8A\xB1'”for column 'name'。我们需要在数据库的可视化工具(例如navicat)中打开user表的设置,查看字符集是否设置为utf8,再看一下name字段的字符集是否设置为utf8,不是的话修改即可。

Spring Data JPA基础增删改查功能
Spring Data JPA基础增删改查功能
Spring Data JPA基础增删改查功能
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢