- 对象关系映射
映射 | 注解 |
---|---|
一对一 | @OneToOne |
一对多 | @OneToMany |
多对一 | @ManyToOne |
多对多 | @ManyToMany |
- 实体注解说明
注解 | 说明 |
---|---|
@Entity | 说明这个类是一个实体类,用在类上面 |
@Id | 使用在数据库主键的字段上 |
@Table | 说明该类的对于数据库是哪一张数据库表,和@Entity配合一起使用 |
@Column | 用在类的属性上面,说明这个属性对应数据库表是哪个字段 |
@GeneratedValue | 是用于数据库主键的生成策略,通过strategy属性指定 |
@Transient | 使用该注解,表示该属性不会映射到数据库表 |
@Temporal | 做Date类型精度转换使用 |
- 实体的增删改查操作
实体操作 | 说明 |
---|---|
新增 | EntityManager提供persist()方法来插入数据记录 |
根据ID查找 | EntityManger接口提供了find()方法,该方法根据主键搜索一个元素 |
根据ID删除 | EntityManager接口提供remove()方法,使用主键来删除特定的记录 |
新增代码
EntityManagerFactory emf = Persistence.createEntityManagerFactory("Student_details");
EntityManager em = emf.createEntityManager();
StudentEntity s1 = new StudentEntity();
s1.setId(1001);
s1.setName("James");
s1.setAge(28);
em.persist(s1);
em.getTransaction().commit();
em.close();
emf.close();
根据ID查找
EntityManagerFactory emf = Persistence.createEntityManagerFactory("Student_details");
EntityManager em = emf.createEntityManager();
StudentEntity s = em.find(StudentEntity.class, 1001);
根据ID删除
EntityManagerFactory emf = Persistence.createEntityManagerFactory("Student_details");
EntityManager em = emf.createEntityManager();
em.remove(em.contains(entity) ? entity : em.merge(entity));