搜索
您的当前位置:首页正文

springboot与jpa的结合

来源:星星旅游

一、QuickStart

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"));
    }
}

运行结果;

二、通过方法名自己定义sql查询

jpa不仅帮你封装了数据库常用的增删改查,还可以自己根据命名规则来定义查询语句,查询语句根据方法名来定义。具体命名规则表如下:

注意,我刚开始写方法名时为这个:

还要很多可以自定义的方法名,具体参照上图表来定义。

三、通过sql语句来查询

当自定义方法名来查询依旧不能满足你的需求的时候,你可以使用sql语句

四、总结

使用jpa,可以使用它自身提供的增删改查语句,也可以通过命名规则来自己定义查询语句,当然,也可以通过@Query注解自己写sql语句。jpa相对来说扩展性强而简单,使用起来相对方便。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top