怎么查网站空间在哪里泉州野外拓展网站建设
- 作者: 五速梦信息网
- 时间: 2026年04月20日 06:52
当前位置: 首页 > news >正文
怎么查网站空间在哪里,泉州野外拓展网站建设,传媒公司网站设计方案,帮我们做网站的人找不到了Spring Data JPA是Spring框架提供的用于简化JPA#xff08;Java Persistence API#xff09;开发的数据访问层框架。它通过提供一组便捷的API和工具#xff0c;简化了对JPA数据访问的操作#xff0c;同时也提供了一些额外的功能#xff0c;比如动态查询、分页、排序等。 …Spring Data JPA是Spring框架提供的用于简化JPAJava Persistence API开发的数据访问层框架。它通过提供一组便捷的API和工具简化了对JPA数据访问的操作同时也提供了一些额外的功能比如动态查询、分页、排序等。 当我们在经历过真正的开发之后我们会发现在实际开发过程中我们对数据库的操作主要为“增删改查”。最为普通的单表操作而言除了表和字段不同外语句基本上都是类似的作为开发者的我们经常需要写大量类似并未枯燥无聊的语句类完成我需要的业务逻辑。 为了避免这些重复且无趣的操作部分开发者为我们提供许多优秀的开发框架其中包括HibernateMyBatis等。而我们今天围绕的Spring Data JPA就是在Hibernate的基础上进行的。Hibernate架构如下 不要小看这张图2023年11月份软考架构师就是考了张图的。 因为Spring Data JPA依赖于Hibernate。接下来我们围绕一个demo来使用Spring Data JPA。 JPA依赖 要使用Spring Data JPA首先需要在项目中引入相应的依赖。在Maven项目中可以在pom.xml文件中添加以下依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId /dependencydemo依赖 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdscopeprovided/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdcom.oracle.ojdbc/groupIdartifactIdojdbc8/artifactIdversion19.3.0.0/versionscopecompile/scope/dependency/dependencies配置连接MYSQL配置类 在Spring Boot中配置文件中配置数据库连接信息自动创建表和删除表的配置。如下最后一行 spring.datasource.urljdbc:mysql://localhost:3306/test?useUnicodetruecharacterEncodingutf-8useSSLtrueserverTimezoneUTC spring.datasource.usernameroot spring.datasource.password123456 spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driverserver.port1001 #spring.datasource.urljdbc:oracle:thin:localhost:1521/orcl #spring.datasource.usernameroot #spring.datasource.passwordroot #spring.datasource.driver-class-nameoracle.jdbc.driver.OracleDriver#hibernate配置 spring.jpa.properties.hibernate.hbm2ddl.autocreate-drop spring.jpa.properties.hibernate.hbm2ddl.auto是hibernate的配置属性其主要作用是自动创建、更新、验证数据库表结构。该参数的几种配置如下 create每次加载hibernate时都会删除上一次的生成的表然后根据你的model类再重新来生成新表哪怕两次没有任何改变也要这样执行这就是导致数据库表数据丢失的一个重要原因。create-drop每次加载hibernate时根据model类生成表但是sessionFactory一关闭,表就自动删除。update最常用的属性第一次加载hibernate时根据model类会自动建立起表的结构前提是先建立好数据库以后加载hibernate时根据model类自动更新表结构即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后表结构是不会被马上建立起来的是要等应用第一次运行起来后才会。validate每次加载hibernate时验证创建数据库表结构只会和数据库中的表进行比较不会创建新表但是会插入新值。 User实体类 Entity //Data //NoArgsConstructor public class User {IdGeneratedValueprivate Long id;private String name;private Integer age;public User(String name, Integer age) {this.name name;this.age age;}public Long getId() {return id;}public void setId(Long id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}public User(Long id, String name, Integer age) {this.id id;this.name name;this.age age;}public User() {}Overridepublic String toString() {return User{ id id , name name \ , age age };}}Entity注解标识了User类是一个持久化的实体 Data和NoArgsConstructor是Lombok中的注解。用来自动生成各参数的Set、Get函数以及不带参数的构造函数。博主并不喜欢直接使用这里边的注解故而全是手动构建的 Id和GeneratedValue用来标识User对应对应数据库表中的主键 创建一个接口 User实体创建对应的Repository接口实现对该实体的数据访问 public interface UserRepository extends JpaRepositoryUser, Long {User findByName(String name);User findByNameAndAge(String name, Integer age);Query(from User u where u.name:name)User findUser(Param(name) String name); }在Spring Data JPA中只需要编写类似上面这样的接口就可实现数据访问。不再像我们以往编写了接口时候还需要自己编写接口实现类直接减少了我们的文件清单。 下面对上面的UserRepository做一些解释该接口继承自JpaRepository通过查看JpaRepository接口的API文档open in new window可以看到该接口本身已经实现了创建save、更新save、删除delete、查询findAll、findOne等基本操作的函数因此对于这些基础操作的数据访问就不需要开发者再自己定义。 在我们实际开发中JpaRepository接口定义的接口往往还不够或者性能不够优化我们需要进一步实现更复杂一些的查询或操作。 User findByName(String name) User findByNameAndAge(String name, Integer age) 它们分别实现了按name查询User实体和按name和age查询User实体可以看到我们这里没有任何类SQL语句就完成了两个条件查询方法。这就是Spring-data-jpa的一大特性通过解析方法名创建查询。 除了通过解析方法名来创建查询外它也提供通过使用Query 注解来创建查询您只需要编写JPQL语句并通过类似“:name”来映射Param指定的参数就像例子中的第三个findUser函数一样。 创建一个测试类 Slf4j RunWith(SpringRunner.class) SpringBootTest public class ApplicationTests {Autowiredprivate UserRepository userRepository;Testpublic void test() throws Exception {// 创建10条记录userRepository.save(new User(1l,AAA, 10));userRepository.save(new User(2l,BBB, 20));userRepository.save(new User(3l,CCC, 30));userRepository.save(new User(4l,DDD, 40));userRepository.save(new User(5l,EEE, 50));userRepository.save(new User(6l,FFF, 60));userRepository.save(new User(7l,GGG, 70));userRepository.save(new User(8l,HHH, 80));userRepository.save(new User(9l,III, 90));userRepository.save(new User(10l,JJJ, 100));// 测试findAll, 查询所有记录Assert.assertEquals(10, userRepository.findAll().size());// 测试findByName, 查询姓名为FFF的UserAssert.assertEquals(60, userRepository.findByName(FFF).getAge().longValue());// 测试findUser, 查询姓名为FFF的UserAssert.assertEquals(60, userRepository.findUser(FFF).getAge().longValue());// 测试findByNameAndAge, 查询姓名为FFF并且年龄为60的UserAssert.assertEquals(FFF, userRepository.findByNameAndAge(FFF, 60).getName());// 测试删除姓名为AAA的UseruserRepository.delete(userRepository.findByName(AAA));// 测试findAll, 查询所有记录, 验证上面的删除是否成功Assert.assertEquals(9, userRepository.findAll().size());} }至此Spring Data JPA案例就结束了在Spring Data JPA中主要覆盖了对关系型数据库的抽象以外还有对其他数据存储中间件的实现诸如我们常用的RedisMongoDB,ElasticSearch等。
- 上一篇: 怎么查网站开发语言网页设计与制作 教学效果
- 下一篇: 怎么查网站找谁做的怎么弄百度网站
相关文章
-
怎么查网站开发语言网页设计与制作 教学效果
怎么查网站开发语言网页设计与制作 教学效果
- 技术栈
- 2026年04月20日
-
怎么查网站建设时间北京最新进出京政策(今天)
怎么查网站建设时间北京最新进出京政策(今天)
- 技术栈
- 2026年04月20日
-
怎么查那家网络公司做的所以网站十堰做网站最专业的公司
怎么查那家网络公司做的所以网站十堰做网站最专业的公司
- 技术栈
- 2026年04月20日
-
怎么查网站找谁做的怎么弄百度网站
怎么查网站找谁做的怎么弄百度网站
- 技术栈
- 2026年04月20日
-
怎么查网站注册时间wordpress 下载远程图片
怎么查网站注册时间wordpress 下载远程图片
- 技术栈
- 2026年04月20日
-
怎么查询菠菜网站做没作弊注册代理记账公司需要什么条件
怎么查询菠菜网站做没作弊注册代理记账公司需要什么条件
- 技术栈
- 2026年04月20日
