Spring Boot 2.x 使用 jpa 连接 mysql

在spring boot网站上生成一个项目,如图:

我使用的是Maven项目,java使用是jdk8(spring boot 2.x必须要jdk8及以上),dependencies分别输入选择 web mysql jpa

使用eclipse添加项目

eclipse的maven插件会自动下载依赖包。

项目加载完成后,新建几个包:

首先设置resources下的application.properties:

spring.datasource.url:jdbc:mysql://127.0.0.1:3306/db_springboot?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=sa
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.open-in-view=false

 

在entities包中添加实体类:

@Entity
@Table(name="tb_user")//表名
public class User {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private long id;
    @Column(name="name")//对应的列名
    private String name;
    @Column(name="password")//对应的列名
    private String passwd;
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPasswd() {
        return passwd;
    }
    public void setPasswd(String passwd) {
        this.passwd = passwd;
    }
}

 

在repositories包中添加User仓储接口

public interface UserRepository extends JpaRepository<User, Long> {

    List<User> findUserByName(String name);

    User findUserByNameAndPasswd(String name, String password);
}

 

在controllers包中添加UserController

@RestController
public class UserController {

    @Autowired
    UserRepository userRepository;
    
    @RequestMapping("/users")
    public String findUsers() {
        List<User> users=userRepository.findAll();
        System.out.println("findAll...");
        for (User user : users) {
            System.out.println("name="+user.getName()+"    password="+user.getPasswd());
        }
        
        System.out.println("findUserByName...");
        users=userRepository.findUserByName("aaaa");
        for (User user : users) {
            System.out.println("name="+user.getName()+"    password="+user.getPasswd());
        }
                
        System.out.println("findUserByNameAndPasswd...");
        User user=userRepository.findUserByNameAndPasswd("aaaa","000000");
        
        System.out.println("name="+user.getName()+"    password="+user.getPasswd());
        
        return "hello all users";
    }
}

在SpringBoot2XDemoJpaApplication中运行,结果如下:

findAll...
name=aaaa password=123456
name=bbbb password=654321
name=aaaa password=000000
findUserByName...
name=aaaa password=123456
name=aaaa password=000000
findUserByNameAndPasswd...
name=aaaa password=000000

 

额外说明:Repository方法是由一个动词、一个可选的主题(Subject)、关键词By以及一个断言所组成。具体可以参考Spring+in+action (Spring实战 第4版)一书的第11章第3节。

posted @ 2019-03-10 22:41  陈苏乾  阅读(1827)  评论(0编辑  收藏  举报