1. 程式人生 > >hibernate中實體類的三種狀態和crud操作

hibernate中實體類的三種狀態和crud操作

實體類

 private int uid;
    private String name;
    private String age;
    private String address;
    public int getUid() {
        return uid;
    }
    public void setUid(int uid) {
        this.uid = uid;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    @Override
    public String toString() {
        return "User [uid=" + uid + ", name=" + name + ", age=" + age + ", address=" + address + "]";
    }

操作資料庫的步驟

        //1.讀取src下hibernate.cfg.xml配置檔案
        Configuration cft = new Configuration();
        Configuration configure = cft.configure();
        //2.建立sessionFactory工廠
        SessionFactory sessionFactory = configure.buildSessionFactory();
        //3.開啟session回話
        Session session = sessionFactory.openSession();
        
        //4.建立事務
        Transaction transaction = session.beginTransaction();
        //5.具體的crud操作
        //6.事務提交
        transaction.commit();
        //關閉會話工廠
        sessionFactory.close();

三種狀態

  1. 瞬時態: 實體類無uid 既主鍵,且與session無關
             User user1 = new User();
             user1.setAddress("上海");
             user1.setAge("21");
             user1.setName("趙六");
             //瞬時態的實體類saveOrUpdate執行插入操作
             session.saveOrUpdate(user1);
             transaction.commit();

     

  2. 持久態: 實體類有uid 既主鍵,與session有關

             User user2 = (User) session.get(User.class, 2);
             user2.setName("莉莉.改");
             //持久態的實體類saveOrUpdate執行修改操作
             session.saveOrUpdate(user2);
             transaction.commit();

     

  3. 託管態: 實體類有uid,與session無關

             User user3 = new User();
             user3.setUid(5);
             user3.setName("美美.改");
             session.saveOrUpdate(user3);
             transaction.commit();

    實體類的crud操作

  4. 查詢操作:查詢操作不需要提交事務
             User user1 = (User) session.get(User.class, 1);
             System.out.println(user1);
             sessionFactory.close();

     

  5. 新增操作

     User user = new User();
             user.setAddress("杭州");
             user.setAge("20");
             user.setName("李四");
             session.save(user);
             transaction.commit();
             sessionFactory.close();

     

  6. 修改操作:先執行查詢操作

        User user = (User) session.get(User.class, 3);//先執行查詢
             user.setAddress("上海");
             user.setName("Jack");
             session.update(user);
             transaction.commit();
             sessionFactory.close();

     

  7. 刪除操作:先執行查詢操作

               User user = (User) session.get(User.class, 3);
               session.delete(user);
               transaction.commit();
               sessionFactory.close();