1,导入starter


1.1,或者直接在pom中导入相关依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
2,编写application.yml配置文件(数据test已经存在)
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://192.168.84.128:3309/test
driverClassName: com.mysql.cj.jdbc.Driver
如果需要也可以在application.yml中进行jpa的相关配置:

比如:
jpa:
hibernate:
ddl-auto: update #如果数据库中没有表则创建,字段不一样会修改,相同不会,和hibernate一样
show-sql: true #主要在控制台显示sql,也和hibernate配置一样。
3,编写一个实体类(bean)和数据表进行映射,并且配置好映射关系(类似hibernate映射配置)
@Entity
@Table(name="Student")
public class Student {
@Id
private Integer id;
@Column
private String sname;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
}
3.1,注解说明:
@Entity:告诉JPA这是一个实体类(和数据表映射的类)
@Table:指定和哪个数据表对应,如果省略默认表名就是student
@Id:主键
@GeneratedValue(strategy = GenerationType.IDENTITY):自增主键,GenerationType类型有4种

@Column:这是和数据表对应的一个列,如果省略默认列名就是属性名
4,编写一个Dao接口来操作实体类对应的数据表
public interface StudentDao extends JpaRepository<Student,Integer> {
}
或者可以自定义sql:
public interface StudentDao extends JpaRepository<Student,Integer> {
@Transactional(timeout = 10)
@Query("select s from Student s where s=?1")
Student selectAllByMyself(Student s);
@Transactional
@Modifying
@Query("update Student s set s.sname=?1 where s.id=?2")
int updateStudentByMyself(String sname,Integer id);
}
@Transactional(timeout = 10):添加 @Transactional 对事物的支持,设置查询超时
@Query:写自定义的sql语句
@Modifying:删除和修改在需要加上@Modifying.

主要继承Repository接口的子接口JpaRepository,第一个参数实体类,第二个参数主键Id类型,主要就是用StudentDao接口进行数据库增删改查(类似mybatis的Mapper接口)
5,编写controller测试(service省略)
@RestController
public class StudentController {
@Autowired
private StudentDao studentDao;
@RequestMapping("/queryAll")
public List<Student> queryAll(){
return studentDao.findAll();
}
}
自定义sql语句controller:
@RequestMapping("/query")
public Student queryAll(){
Student s=new Student();
s.setId(1);
return studentDao.selectAllByMyself(s);
}
@RequestMapping("/update")
public int update(){
return studentDao.updateStudentByMyself("lyxgood",1);
}

完。 2.1.6
本文详细介绍了如何在SpringBoot项目中整合SpringData JPA,从导入starter或添加依赖开始,到编写application.yml配置文件,接着创建实体类并配置映射关系,然后实现Dao接口进行数据库操作,最后通过Controller进行测试。通过这些步骤,读者可以理解并实践SpringData JPA在实际项目中的应用。

1053

被折叠的 条评论
为什么被折叠?



