首页 > 代码库 > Spring Boot访问mysql(JPA方式)最简单配置

Spring Boot访问mysql(JPA方式)最简单配置

0.先推荐一个工具——lombok,pom文件如下:

<dependency>    <groupId>org.projectlombok</groupId>    <artifactId>lombok</artifactId>    <scope>compile</scope></dependency>

可以使用注解@Data 编译时自动生成get,set方法,构造函数,toString方法。

@Data@Entitypublic class Account{    @Id    private String id;    private String account;    @Column(name = "call_phone")    private String phone;    @Column(name = "nick_name")    private String nickname;    private String password;    private String salt;    private int userType;    private String createUser;    private Timestamp createTime;    private int state;}

生成后的效果如下:

技术分享

 

1.pom.xml文件下添加如下依赖,引入spring-boot-jpa的jar包,以及mysql驱动

<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency>    <groupId>mysql</groupId>    <artifactId>mysql-connector-java</artifactId></dependency>

 

2.在/src/main/resources/application.properties中配置spring datasource及hibernate方言

(Spring boot 默认使用hibernate作为JPA的实现)

spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=falsespring.datasource.username=rootspring.datasource.password=rootspring.datasource.tomcat.max-active=100spring.datasource.tomcat.max-idle=200spring.datasource.tomcat.initialSize=20spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect

 

3.定义Entity和Repository(接口)。

技术分享

Entity--Account实体类如下:

  @Entity会被spring扫描并加载,

  @Id注解在主键上

  @Column name="call_phone" 指该字段对应的数据库的字段名,如果相同就不需要定义。数据库下划线间隔和代码中的驼峰法视为相同,如数据库字段create_time等价于Java类中的createTime,因此不需要用@Column注解。

@Data@Entitypublic class Account{    @Id    private String id;    private String account;    @Column(name = "call_phone")    private String phone;    @Column(name = "nick_name")    private String nickname;    private String password;    private String salt;    private int userType;    private String createUser;    private Timestamp createTime;    private int state;}

Repository如下:

@Repositorypublic interface AccountRepository extends JpaRepository<Account, String>{    Account findOneByAccount(String account);}

 

 

4.在其他@Component中调用

@RestController@RequestMapping("/subsystem")public class SubsystemAuthorityService{    @Autowired    AccountRepository accountRepository;    @PostMapping(path = "/admin/info")    public String getAdminInfo(String currentAccount)    {        Account account = accountRepository.findOneByAccount(currentAccount);        System.out.println(account);        return account.toString();    }}

Spring Boot访问mysql(JPA方式)最简单配置