1. 程式人生 > >使用Session中的方法進行增刪改查

使用Session中的方法進行增刪改查

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
}