网站首页 > 教程分享 正文
Spring Data Lovelace版本已经发布,本文将介绍其中的Spring Data新模块:Spring Data JDBC。
Spring Data JDBC背后的思想是提供对关系数据库的访问,而无需服从JPA的复杂性。JPA提供延迟加载,缓存和脏跟踪等功能。这些特性当然都很棒,如果你需要这些它们,可以考虑JPA,但是实际使用起来比以想象的要难。
延迟加载可能会在你不期望它时触发昂贵的操作,或者它可能会因异常而失败。当你真正想要比较一个被修改过的实体的两个版本时,缓存可能会妨碍你很难顺利处理所有持久性操作。
Spring Data JDBC旨在实现更简单的模型。不会有缓存,脏跟踪或延迟加载。相反,只有在调用存储库方法时才会发出SQL语句。作为该方法返回的对象在方法返回之前完全加载。实体没有“会话”和代理。所有这些都应该使Spring Data JDBC更易于理解。
当然,这种更简单的方法会导致局限性,这些将在后面的帖子中介绍。此外,它是第一个版本,尽管我们想要并计划实施许多功能,但我们不得不推迟以便你尽早使用到这些内容。
我们来看一个简单的例子
请注意,你不需要getter或setter。如果你愿意,也可以使用它们。实际上,唯一的要求是实体有一个用Id注释的属性(这个是@ org.springframework.data.annotation.Id,而不是javax.persistence)。
接下来,我们需要声明一个repository,最简单的方式是让它扩展CrudRepository。
最后,我们需要配置ApplicationContext以启用repositories的创建。
让我们一步一步地完成配置。
1.EnableJdbcRepositories可以创建存储库。由于它需要存在一些bean,我们需要其余的配置。
2.扩展JdbcConfiguration会向ApplicationContext添加一些默认bean。你可以覆盖其方法以自定义Spring Data JDBC的某些行为。现在,我们使用默认实现。
3.真正重要的部分是NamedParameterJdbcOperations,它在内部用于向数据库提交SQL语句。
4.严格来说,事务管理不是必需的。但是你的工作不支持跨越多个操作的交易,没有人想要,对吧?
5.Spring Data JDBC不直接使用DataSource,但是,由于TransactionManager和NamedParameterJdbcOperations需要它,因此将其注册为bean是确保两者使用相同实例的简单方法。
这就是你开始使用它所需要的一切。现在让我们在测试中运行它:
@Query注解
你可能不会仅仅使用CrudRepository中的基本CRUD方法。在Spring Data后续版本中,有个更强大的特性是通过方法名称来推导查询,但是我们决定推迟查询推导。在这之前,你可以使用简单的@Query注解来指定存储库查询方法:
请注意,如果使用-parameters标志进行编译,则不需要@Param注解。
如果要执行更新或删除操作,则可以向方法添加@Modifying注解。
让我们创建另一个测试以试用新方法。
1.由于Java对象与其对应行之间的连接只是其Id加上其类型,因此将Id设置为null并再次保存它会在数据库中创建一条新记录。
2.我们正在进行不区分大小写(like)搜索,因此,我们找到“Albert”和“Bertram”,但不是“Beth”
小结
你可以查看示例,文档,当然还有源代码。如果你有任何疑问,请在StackOverflow上提问。如果你发现错误或想要请求新功能,请创建一个问题。
原文:https://spring.io/blog/2018/09/17/introducing-spring-data-jdbc
编译:春之雨
说明:版权归原文作者,翻译仅供学习参考。欢迎反馈和讨论,感谢阅读。
猜你喜欢
- 2024-10-14 Java之Spring4:JDBC(java之父余胜军网站)
- 2024-10-14 《JDBC》第09节:JDBC之DatabaseMetaData数据库元数据对象
- 2024-10-14 《JDBC》第18节:JDBC之数据库连接池Hikari的使用(软编码方式)
- 2024-10-14 flink教程-详解flink 1.11 中的JDBC Catalog
- 2024-10-14 肝!Spring JDBC持久化层框架“全家桶”教程
- 2024-10-14 JDBC的基础使用(jdbc 教程)
- 2024-10-14 大数据开发基础之JAVA基础-JDBC基础知识
- 2024-10-14 JDBC基础整理(jdbc 教程)
- 2024-10-14 小白都能看懂的JDBC事务(jdbc实现事务管理)
- 2024-10-14 Spring JdbcTemplate讲解(spring的jdbc模板)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)