一、整合SpringData JPA
1、JPA基于ORM思想(Objective Relational Mapping):对象关系映射
# 配置数据源
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql//127.0.0.1/user
driver-class-name: com.mysql.jdbc.Driver # 先导入mysql的jar包
# 表示在控制台将sql语句打印出来
jpa:
show-sql: true
2、首先编写一个实体类和数据表进行映射,并且配置好映射关系
//使用JPA注解配置映射关系
@Entity //告诉JPA这是一个实体类和数据表进行映射
@Table(name = "user") //和哪个数据表进行映射;如果省略默认表名为类名小写user
public class User {
@Id //标注主键
@GeneratedValue(strategy = GenerationType.IDENTITY) //自增主键
private Integer id;
@Column(name = "name") //表明和数据表对应的列,指定列名
private String name;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
3、编写dao接口操作实体类对应的数据表(Repository
),两个泛型含义T代表那个实体类传入实体类名,ID extends Serilizable是主键的类型。
(1)CrudRepository<T,ID extends Serilizable>
:基本CRUD功能的 接口
(2)PagingAndSortingRepository<T,ID extends Serilizable>
:具有分页和排序功能的接口。
(3)JpaRepository<T,ID extends Serilizable>
: 上面两个功能加起来
//继承JpaRepository来完成对数据库的操作
public interface UserRepository extends JpaRepository<User,Integer> {
}
数据访问容易出现的问题
1、MySQL没有授权
2、将application.properties
里面的data-username/data-password改为``username/password
3、实体类中的字段名和数据库表中的字段名保持一致。
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://127.0.0.1:3306/test
driver-class-name: com.mysql.jdbc.Driver # 先导入mysql的jar包