springboot整合Jpa - 高级篇1

一、引入jar包(maven依赖方式)


   mysql
   mysql-connector-java

 


   org.springframework.boot
   spring-boot-starter-data-jpa

二、添加配置文件(yml文件)

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/demo
    username: root
    password: 888888

注:以上采用的是springboot默认的数据源,如果需要使用阿里数据源采用以下方式:

阿里目前已经为springboot提供了相应的jar包,所有大家不要再引用当初手动整合的Druid。

    com.alibaba
    druid-spring-boot-starter
    1.1.10

yml配置

spring:
  datasource:
    druid:  
      driver-class-name: com.mysql.jdbc.Driver
      url: jdbc:mysql://localhost:3306/demo
      username: root
      password: 888888

此时启动服务器成功后(你必须的建立相应数据库),浏览器输入http://localhost:8080/druid/index.html即可访问监控页面

三、创建实体类

以上连接数据库的配置就已经完成,如果项目比较小,我们可以通过hibernate注解的方式自动创建数据库表;如果项目比较复杂,为了后期方便维护,在此建议还是手动建表。

yml配置

spring:
  jpa:
    hibernate:
      ddl-auto: update  #当实体类与表结构不一致,启动服务时更新数据库
    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect  # 默认创建的数据库表类型为MylSam类型,不支持事务
                                                      # 如果需要添加事务,须使用InnoDB类型,就需要加入hibernate方言

例如创建一个User对象(此处@Setter, @Getter,@ToString注解为lombok插件提供,开发时极大的精简了实体类的代码,推荐使用,没有安装使用传统get/set方法亦可)

@Setter
@Getter
@ToString
@Entity
@Table(name="user" , indexes = {
        @Index(name = "idx_username_gender", columnList = "username, gender")
})         // 创建索引(此处只是一个创建联合索引的例子,单索引同理)
public class User{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)  // 注解生成策略    
    @Column(name = "id", nullable = false, columnDefinition = "int(11) comment '主键id'")
    private Integer id;

    @Column(name = "username", nullable = false, columnDefinition = "varchar(24) comment '用户名'")
    private String username;

    @Column(name = "age", nullable = false, columnDefinition = "tinyint(3) comment '年龄'")
    private Integer age;

    @Column(name = "gender", nullable = false, columnDefinition = "tinyint(1) comment '性别 0:男, 1:女'")
    private Boolean gender;
}

四、JPA的使用

以上完成了所有的准备工作,整合Jpa的任务基本完成,接下来就是Jpa如何使用

dao层

/**
 * 如果只是简单的增删改查,只需要继承JpaRepository接口即可,如果包括较复杂如动态查询,可再继承JpaSpecificationExecutor接口
 * 由于hibernate封装了大量的方法,所有很多简单的操作不再需要我们自己手动写,具体使用方法接下来会一一总结介绍。
 */
@Repository
public interface UserDao extends JpaRepository, JpaSpecificationExecutor {

}

 

你可能感兴趣的:(springboot2)