1. 背景Jpa是继承了Hibernate,所以用起来很方便。
使用的过程一共分为3部分:
- 首先: 写相关的实体类,根据自己的开发需要会自动建表原理是基于ORM框架。(注意点,好像必须要有主键ID,正在验证。已经进行了相关的验证,没有ID可以正常的进行数据的插入和更新,不过查询使用Find必须采用自定义设计的函数接口进行处理,因为默认情况下是采用Integer 类型Id进行查询。)
/**
* @Description: JPA实体类Entity的注解配置。
* @Param:
* @return:
* @Author: 葛春光
* @Date: 2020/7/10
*/
@Entity
@Table(name = "Tll_employee")
public class Employee {
@Id //这是一个主键
@GeneratedValue(strategy = GenerationType.IDENTITY) //表示自增主键
private Integer id;
@Column(name = "name",length = 50) //这是和数据表对应的列,最大长度为50字符。
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
然后第二步: 就是编写对应的JpaRepository实体类(基础版,只是针对JPA自带的函数接口进行使用)
自定义版开发会根据需求进行自定义方式很简单如下,只需要添加相关的函数名就可以自动实现函数:
public interface EmployeeRepositoryextends JpaRepository<User,Integer> {
//<editor-fold desc="1. 以name姓名进行查询">
Employee findByName(String name );
//</editor-fold>
//<editor-fold desc="2. 以姓名和密码进行查询">
Employee findByNameAndPassword(String name ,String password);
//</editor-fold>
}
接着: 也是核心部分,那就是配置文件,这里采用yml格式看起来比较容易。
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://192.168.59.129:3306/Jpa
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
# 由于jpa继承了hibernate,所以进行hibernate的配置就可以了,更新或者创建表设置。
ddl-auto: update
# 控制台显示SQL。
show-sql: true
# 用于解决控制台出现警告的情况
open-in-view: false
最后一步: 也就是创建控制器进行简单地插入和查看数据。
下面是针对JPA自带的函数进行简单地查询业务。
根据自定义实现相关的数据库操作:(完全满足根据开发的需求进行相关的设计参数的值可以通过任何手段获取后进行相关的操作就可以实现。)
public class EmployeeController{
@Autowired
EmployeeRepository repository;
//<editor-fold desc="1. JPA方式查看数据">
@GetMapping("/user/{id}")
public Employee getEmployee(@PathVariable("id") String id) {
System.out.println("要查询的ID号为:" + id);
Employee employee1= repository.findByName(id); //自定义根据姓名获取用户信息
Employee employee2 = repository.findByNameAndPassword(id,"1234"); //自定义根据姓名和密码获取用户的信息。
System.out.println("查询到的用户姓名为:"+employee2 .getName());
System.out.println("查询到的用户密码为:"+employee2 .getPassword());
return employee1;
}
//</editor-fold>
}