實體類操作 和 實體類物件狀態
阿新 • • 發佈:2018-12-31
對實體類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);