小编给大家分享一下弹簧引导中使用弹簧数据JPA连接数据库的方法,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!
<强>春数据JPA 强>
<强> JPA简单介绍强>
Java持久性API (JPA)是Java的一个规范。它用于在Java对象和关系数据库之间保存数据。
JPA充当面向对象的领域模型和关系数据库系统之间的桥梁。由于JPA只是一个规范,它本身不执行任何操作。它需要一个实现,因此,像Hibernate, TopLink和iBatis这样的ORM工具实现了JPA数据持久性规范。
数据JPA是弹簧基于ORM框架,JPA规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用弹簧数据JPA可以极大提高开发效率。
<>强基本查询强>
春JPA数据已经实现了一部分基础的数据库操作,包括基本的增删改查。
第一,需要在砰的一声。xml里面引入相关的依赖。
& lt; dependency> & lt; groupId> mysql & lt; artifactId> mysql-connector-java & lt;/dependency> & lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-data-jpa & lt;/dependency>
第二,需要在应用程序中。属性配置文件中添加数据库的相关配置及jpa的相关配置
#配置数据源 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc: mysql://localhost: 3306/springboot spring.datasource.username=用户名 spring.datasource.password=密码 # jpa数据库表格创建的方式,和控制台sql的打印 jpa.hibernate.ddl-auto=更新 jpa.hibernate。show-sql=true
第三,写实体类。
正常情况下我们在实体类上加入注解@ entity,就会让实体类和表相关连。
如果其中某个属性我们不需要和数据库来关联只是在展示的时候做计算,只需要加上@Transient属性既可。
@ id是标识出主键
@GeneratedValue是指定主键的自增方式。
第四,写查询方法。
写一个接口实现JpaRepository接口即可:
JpaRepository后面需要添加两个参数,一个是实体类,另一个是主键的类型。
继承JpaRepository之后,就可以使用简单的增删改查功能了。
@Test 公共空间testBaseQuery()抛出异常{ 女孩女孩=new女孩(); userRepository.findAll (); userRepository.findOne (1); userRepository.save(女孩); userRepository.delete(女孩);//? }
<>强自定义简单查询强>
因为这只能满足我们的基本查询,如果不想按照他给的查询的话我们就需要自己写查询语句了吗?答案肯定是否定的了。我们还是可以按照JPA的规则生成一些查询语句的。
自定义的简单查询就是根据方法名来自动生成SQL,主要的语法是findXXBy, readAXXBy, queryXXBy, countXXBy, getXXBy后面跟属性名称:
复杂查询
这里就需要我们自己写SQL了,我们来看一下需要注意的地方。
在SQL的查询方法上面使用@Query注解,如涉及到删除和修改在需要加上@Modifying。也可以根据需要添加@ transactional对事物的支持,查询超时的设置等。
注意:如果在写查询的时候,HQL语句中表名应该是ORM映射的类名。
//传单个值的时候 @Query(“选择u从用户那里。年龄=? # {[0]}“) ListfindUsersByAge (int年龄);//传多个值的时候 @Query(“选择u从用户那里。firstname=: # {# customer.firstname}“) List findUsersByCustomersFirstname (@Param (“customer")客户客户)
看完了这篇文章,相信你对春天的引导中使用弹簧数据JPA连接数据库的方法有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!