zoukankan      html  css  js  c++  java
  • Spring Boot访问mysql(JPA方式)最简单配置

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

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

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

    @Data
    @Entity
    public 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;
    }

    生成后的效果如下:

    image

    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=false
    spring.datasource.username=root
    spring.datasource.password=root
    spring.datasource.tomcat.max-active=100
    spring.datasource.tomcat.max-idle=200
    spring.datasource.tomcat.initialSize=20
    spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect

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

    image

    Entity--Account实体类如下:

      @Entity会被spring扫描并加载,

      @Id注解在主键上

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

    @Data
    @Entity
    public 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如下:

    @Repository
    public 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();
        }
    }
  • 相关阅读:
    python
    js 对嵌套页面的父页面进行跳转
    HTML 添加空格
    python
    python
    python
    面向对象编程基础(进阶4)
    Python模块(进阶3)
    Python函数式编程(进阶2)
    python进阶介绍(进阶1)
  • 原文地址:https://www.cnblogs.com/arli/p/6914057.html
Copyright © 2011-2022 走看看