1、导入jpa的依赖以及数据库驱动的依赖
<!--加入对jpa的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
2、配置连接,在application.properties中加入相关数据库驱动的连接
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=6198611nao
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
我这里的mysql是最新版本的,所以驱动与旧版本的有所不同
3、定义表的实体类,我这里一个user表
package com.xyn.model;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
@Entity //表示实体类
@Table(name = "user") //对应哪一张表
public class User implements Serializable {
@Id //主键。必须有的,否则会报错
private int id;
private String username;
private String password;
public User() {
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setPa(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User(int id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
}
4、编写dao层,定义一个UserDao接口,继承JpaRepository<T,ID>接口,就可以实现常用的增删改查。
import com.xyn.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface Userdao extends JpaRepository<User, Integer> {
}
5、测试类:
import com.xyn.model.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@SpringBootTest
@RunWith(SpringRunner.class)
public class UserdaoTest {
@Autowired
private Userdao dao;
@Test
public void save(){
dao.save(new User(5,"许大虎","2545"));
}
}
运行结果;
jpa不仅帮你封装了数据库常用的增删改查,还可以自己根据命名规则来定义查询语句,查询语句根据方法名来定义。具体命名规则表如下:
注意,我刚开始写方法名时为这个:
还要很多可以自定义的方法名,具体参照上图表来定义。
当自定义方法名来查询依旧不能满足你的需求的时候,你可以使用sql语句
使用jpa,可以使用它自身提供的增删改查语句,也可以通过命名规则来自己定义查询语句,当然,也可以通过@Query注解自己写sql语句。jpa相对来说扩展性强而简单,使用起来相对方便。
因篇幅问题不能全部显示,请点此查看更多更全内容