1. 程式人生 > >實體類操作 和 實體類物件狀態

實體類操作 和 實體類物件狀態

 

對實體類crud操作:

  1、新增操作

   呼叫 session 裡面的save 方法實現
//新增功能 User user=new User(); user.setUsername("阿旭"); user.setPassword("521333"); user.setAddress("卡卡市"); //呼叫session的方法新增 session.save(user);

     2、根據 id 查詢

        //、根據id 查詢
      呼叫 session裡面的get 方法
      第一個引數:實體類的class
      第二個引數:id 值
User user = session.get(User.class, 1); System.out.println(user)

   3 、修改操作

        //4、修改 id=2的人的username="東方不敗"
        //根據 id=2 查詢
        User user = session.get(User.class,2);
        //向返回的uer 物件中設定 username
        user.setUsername("東方不哈");
        //呼叫 session方法 update修改
        
//執行過程,到 user物件中查詢到 id值,根據 id值進行修改 session.update(user);
hibernate底層的實現原始碼:::
Hibernate: select user0_.id as id1_0_0_, user0_.username as username2_0_0_, user0_.password as password3_0_0_, user0_.address as address4_0_0_ from t_user user0_ where user0_.id=? Hibernate: update t_user set username=?, password=?, address=? where id=?

   4、刪除操作

    4.1 呼叫 session裡面的delete 方法實現

        Hibernate 實現原理:根據 User 的id查詢到物件,然後刪除操作

        刪除操作
            //第一種方式 根據 id 查詢物件
        User user = session.get(User.class,1);
        session.delete(user);
            //第二種方式 
        User user=new User();
        user.setId(2);
        session.delete(user);

演示操作實體類物件的方法:

  1 saveOrUpdate 方法:實現新增、實現修改(根據物件狀態不同執行操作不同)

  1、
User u=new User(); u.setUsername("卡卡"); u.setPassword("45679"); u.setAddress("北京市"); //如果實體類是瞬時態,就執行新增操作 session.saveOrUpdate(u);
  2、
        User u=new User();
        u.setId(3);
        u.setUsername("tianshi");
        u.setPassword("45679");
        u.setAddress("天津市");
        //如果實體類是託管態,就做修改操作
        session.saveOrUpdate(u);
  3、
      User u=session.get(User.class,3);
      u.setUsername("那卡");
      //實體類物件狀態是持久態,做修改操作  
      session.saveOrUpdate(u);

 

實體類物件狀態(概念)

  1、實體類狀態有三種

    1.1 瞬時態:物件裡面沒有 id值,物件與session 沒有關聯

    User u=new User()
    u.setUsername("jack");
    u.setPassword("123");
    u.setAddress("china");

    1.2 持久態:物件裡面有 id值,物件與 session關聯

        User user = session.get(User.class,2);

    1.3 託管態:物件有 id值,物件與 session沒有關係

    User u=new User()
    u.setid(2);