springboot使用JPA——开源项目代码学习
JPA作用:简化持久层操作(数据库访问)
1、配置数据源和JPA的其他参数
示例:
#配置数据源 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/mytest?useSSL=false spring.datasource.username=root spring.datasource.password=123456 #自动更新数据库表,没有则创建 spring.jpa.hibernate.ddl-auto=update #显示sql语句 spring.jpa.show-sql=true
spring.jpa.hibernate的其他配置
参考博客:https://blog.csdn.net/zhangtongpeng/article/details/79609942
ddl-auto:create----每次运行该程序,没有表格会新建表格,表内有数据会清空 ddl-auto:create-drop----每次程序结束的时候会清空表 ddl-auto:update----每次运行程序,没有表格会新建表格,表内有数据不会清空,只会更新 ddl-auto:validate----运行程序会校验数据与数据库的字段类型是否相同,不同会报错 ———————————————— 版权声明:本文为CSDN博主「万里飞鹏」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/zhangtongpeng/article/details/79609942
1、定义数据层访问接口:JpaRepository。使用时自定义接口,并实现JpaRepository<T,V>。
功能:提供对数据库访问的接口。
示例:
1 import org.springframework.data.jpa.repository.JpaRepository; 2 import org.springframework.data.jpa.repository.Query; 3 import org.springframework.data.repository.query.Param; 4 5 import java.util.List; 6 /* 7 定义数据访问层接口,功能类似于mapper 8 */ 9 public interface PersonRepository extends JpaRepository<Person,Long> { 10 List<Person> findByAddress(String address); 11 12 Person findByNameAndAddress(String name,String address); 13 14 @Query("select p from Person p where p.name=:name and p.address=:address") 15 Person withNameAndAddressQuery(@Param("name") String name,@Param("address") String address); 16 17 Person withNameAndAddressNameQuery(String name,String address);
3、定义pojo层:
(1)@NamedQuery:定义sql查询片段。
(2)@Entity:表明此对象为pojo。
(3)@Id+@GeneratedValue:生成主键。
示例:
import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.NamedQuery; /* 将sql查询的数据注入Bean */ @Entity @NamedQuery(name="Person.withNameAndAddressNameQuery", query="select p from Person p where p.name=?1 and p.address=?2") public class Person { /* 生成主键:唯一标识符 */ @Id @GeneratedValue private Long id; private String name; private Integer age; private String address; public Person(){} public Person(Long id, String name, Integer age, String address) { this.id = id; this.name = name; this.age = age; this.address = address; } ---------------省略getter与settter方法--------------------------

浙公网安备 33010602011771号