JPA
什么是JPA?
JPA全称为Java Persistence API ,Java持久化API是Sun公司在Java EE 5规范中提出的Java持久化接口。
用户数据访问层的接口
1.该接口需要继承JpaRepository接口
2.继承接口时,需要通过泛型指定进行数据持久化操作时,所对应的Entity实体类+逐渐类型
@Repository
public interface IuserDAO extends JpaRepository<User,Integer> {
List<User> findUserByLoginPhoneNumber(String phoneNumber);
List<User> findUserByLoginPhoneNumberLike(String loginPhoneNumber);
}
创建实体类和映射的注解
JPA 基本注解:
1.@Entity 标注用于实体类声明语句之前,指出该Java 类为实体类,将映射到指定的数据库表。
2.@Table 映射表格
a)常和@Entity配合使用。
b)Name可选,表示表的名称。
3.@Id 映射生成主键:通常置于属性声明语句之前,也可置于属性的getter方法之前。必须有,定义了映射到数据库表的主键属性
4.@GeneratedValue 用于标注主键的生成策略,通过 strategy 属性指定。
(strategy=GenerationType.AUTO)主键策略:
a)IDENTITY:采用数据库 ID自增长的方式来自增主键字段
b)AUTO: JPA自动选择合适的策略,是默认选项;
c)SEQUENCE:通过序列产生主键
5.@Column 映射表格列 (可选):常用属性是 name,用于设置映射数据库表的列名。
//标注当前类为持久化层的实体类,该类型的对象,可以进行ORM操作
@Entity
//标注当前实体类对应的数据库的“数据表的名称”
@Table(name="user_info")
public class User implements Serializable {
@Id //标注当前属性为主键字段
@GeneratedValue(strategy = GenerationType.IDENTITY) //标注当前主键的生成方式
@Column(name="user_id") //标注当前属性对象的“数据表中的字段名称”
private Integer userId;
//标注当前属性对应的"数据表的字段名称“
@Column(name="login_phone_number")
private String loginPhoneNumber;
@Column(name="user_real_name")
private String userRealName;
@Column(name = "last_login_time")
private Date lastLoginDateTime;
}