一、引入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。
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 {
}