JPA使用基本步骤及插入数据示例

JPA使用基本步骤

1.环境搭建

(1). pom.xml配置
在创建spring boot项目时选择mysql驱动和JPA支持即可
(2). persistence.xml配置
在resource下创建META-INF文件夹(jpa默认配置路径),在该文件夹下创建persistence.xml文件,在设置中选择相应的模板导入,之后写入如下配置。





org.hibernate.jpa.HibernatePersistenceProvider
    
    
        
        
        
        
        
        
        
        

    



2.创建实体类并与数据库表映射

@Entity//声明实体类
@Data//相当于get/set方法
@Table(name=“user”)//实体类和表的映射关系
public class User {

@Id//主键声明
//@GeneratedValue(strategy = GenerationType.AUTO)主键生成策略//identity自增式增长需数据库底层支持/sequence 序列,需底层数据库支持()如果是自己设置的话建议不写这句
@Column(name="id_user")//表中字段与类属性的映射关系
private String id;
@Column(name="username")
private String name;
@Column(name="password")
private String password;

3.使用JPA对数据库实行增加操作

JPA操作步骤

  • 1.加载配置文件,创建工厂(实体管理器工厂)
  • 2.通过工厂获取实体管理器
  • 3.获取事务对象,开启事务(增删改之前一定开启事务)
  • 4.完成增删改查
  • 5.提交事务或回滚事务
  • 6.释放资源
  • */
    //加载配置文件,根据配置文件内容加载尸体管理器
    EntityManagerFactory managerFactory=Persistence.createEntityManagerFactory(“myjpa”);
    //通过实体管理器工厂获取实体管理器
    EntityManager entityManager=managerFactory.createEntityManager();
    //获取事务对象,开启事务
    EntityTransaction transaction=entityManager.getTransaction();//获取事务对象
    transaction.begin();//开启事务
    //完成增删改查
    User user=new User(“3370”,“张三”,“987654”);
    //保存
    entityManager.persist(user);//保存操作
    //提交事务
    transaction.commit();
    //释放资源
    entityManager.close();
    managerFactory.close();

完成删改查

/*
* 根据id查询客户
*
* /
@Test
public void testFind(){
//1.获取尸体管理器对象
EntityManager entityManager=JpaUtils.getEntityManager();
//2.开启事务
EntityTransaction transaction=entityManager.getTransaction();
transaction.begin();
//3.增删改查
/

* find:根据id查询数据
* class:查询数据的结果需要包装的实体类类型的字节码
* id:查询的主建名称
* 立即加载
* 可以用null来判断查询结果是否·为空
* */
User user=entityManager.find(User.class,“3370”);
//System.out.println(user);
//4.提交事务
transaction.commit();
//5.释放资源
entityManager.close();
}

@Test
public void testGetReference(){
    //1.获取尸体管理器对象
    EntityManager entityManager=JpaUtils.getEntityManager();
    //2.开启事务
    EntityTransaction transaction=entityManager.getTransaction();
    transaction.begin();
    //3.增删改查
    /*
    (常用方法)
     * getReference:根据id查询数据
     *       class:查询数据的结果需要包装的实体类类型的字节码
     *          id:查询的主建名称
     *
     * 1.获取的对象是一个动态代理
     * 2.不会立即放松sql语句去查 当调用查询结果对象时才会发送sql语句
     *
     * 延迟加载(懒加载)
     * *得到一个动态代理对象
     * *什么时候用,什么时候查
     * 如果查询结果为空,会返回代理对象值,无法用null来判断
     * */
    User user=entityManager.getReference(User.class,"3371");//查询得到代理对象
        System.out.println(user);
    //4.提交事务
    transaction.commit();
    //5.释放资源
    entityManager.close();
}

@Test
public void testRemov(){
    //1.获取尸体管理器对象
    EntityManager entityManager=JpaUtils.getEntityManager();
    //2.开启事务
    EntityTransaction transaction=entityManager.getTransaction();
    transaction.begin();
    //3.增删改查--删除

    User user=entityManager.find(User.class,"3369");
    entityManager.remove(user);//删除对象,需要先查询得到对象
    //System.out.println(user);
    //4.提交事务
    transaction.commit();
    //5.释放资源
    entityManager.close();
}
@Test
public void testMerge(){
    //1.通过工具类获取尸体管理器对象
    EntityManager entityManager=JpaUtils.getEntityManager();
    //2.开启事务
    EntityTransaction transaction=entityManager.getTransaction();
    transaction.begin();
    //3.增删改查--更新
    /*
    * 先查询得到实体类对象,然后修改对象的属性,再执行更新操作
    * */

    User user=entityManager.find(User.class,"3370");
    user.setPassword("123456");
    entityManager.merge(user);//删除对象,需要先查询得到对象
    //System.out.println(user);
    //4.提交事务
    transaction.commit();
    //5.释放资源
    entityManager.close();
}

你可能感兴趣的:(mysql,java,spring,jpa)