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方法--------------------------

 

posted @ 2020-05-31 21:33  怪兽不纯粹  阅读(487)  评论(0)    收藏  举报