使用Session中的方法進行增刪改查
阿新 • • 發佈:2018-12-11
1.增加:session.save(物件); 具體如下:
public static void main(String[] args){ //讀取總的配置檔案 Configuration configuration = new Configuration().configure(); //建立SessionFactory物件(session工廠就相當於是一個生產session的地方) SessionFactory sessionFactory = configuration.buildSessionFactory(); //得到Session物件(Session就是對JDBC中Connection物件的封裝) Session session = sessionFactory.openSession(); //開啟事務 Transaction transaction = session.beginTransaction(); //持久化儲存資料(也就是將相關物件存在資料庫中的過程) User user = new User(); user.setUserName("張文哲"); user.setPassword("zwz123456"); session.save(user); //提交事務 transaction.commit(); //關閉session(就好比Connection物件,與資料庫的連線都不是可以無限連線的) session.close(); }
以上就可以把資料加入資料庫。其中: 1)User類是pojo中的類,它與資料庫中儲存使用者資訊的表相對應; 2)必須把User類的.hbm.xml檔案配置好,而且在總的hibernate.cfg.xml檔案配置好之後才可以使用上面的語句向資料庫加入資料
2.查詢:session.get(Class.clazz,id)或者session.load(Class.clazz,id) 具體如下:
【注】:這兩個方法具有侷限性,其只能根據主鍵的資訊進行查詢
public static void main(String[] args){ //讀取總的配置檔案 Configuration configuration = new Configuration().configure(); //建立session工廠 SessionFactory sessionFactory = configuration.buildSessionFactory(); //得到Session物件 Session session = sessionFactory.openSession(); //執行查詢開不開啟事務都是可以的,這裡就不開啟了 User user = (User)session.get(User.class,1);//在資料庫中的使用者表查詢出主鍵id為1的資料並返回User物件 //關閉session session.close(); }
User user = (User)session.get(User.class,1);//在資料庫中的使用者表查詢出主鍵id為1的資料並返回User物件
如果使用load(Class.clazz,id)的話,就將上面這行程式碼換成下面這行:
User user = (User)session.load(User.class,1);//在資料庫中的使用者表查詢出主鍵id為1的資料並返回User物件
3.修改:session.update(物件); 具體如下:
public static void main(String[] args){ //讀取總的配置檔案 Configuration configuration = new Configuration().configure(); //建立session工廠 SessionFactory sessionFactory = configuraion.buildSessionFactory(); //得到session Session session = sessionFactory.openSession(); //開啟事務 Transaction transaction = session.beginTransaction(); //持久化資料(將主鍵id為1的資料的密碼修改成zwz) User user = (User) session.load(User.class, 1); user.setPassword("zwz"); session.update(user); transaction.commit();//提交事務 session.close();//關閉session會話 }
4.刪除:session.delete(物件); 具體如下:
public static void main(String[] args){
//讀取配置檔案
Configuration configuration = new Configuration().configure();
//建立sessionFactory(用於生產session)
SessionFactory sessionFactory = configuration.buildSessionFactory();
//得到Session物件
Session session = sessionFactory.openSession();
//開啟事務
Transaction transaction = session.beginTransaction();
User user =(User) session.get(User.class, 1);
session.delete(user);//刪除主鍵id為1的資料所對應的物件所對應對的資料庫中的資料
transaction.commit();//提交事務
session.close();//關閉session
}