SpringBoot 整合SpringData JPA

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值