Hibernate openSession方法:開啟一個session

2020-07-16 10:04:56
openSession 方法用於通過 SessionFactory 建立 Session 範例,建立 Session 範例後,就可以通過建立的 Session 進行持久化操作。

語法1

建立資料庫連線並開啟一個 Session 範例。

openSession()


返回值:Session 範例。

範例

通過 openSession() 方法建立一個 Session 範例,關鍵程式碼如下:
SessionFactory sessionFactory = config.buildSessionFactory();
Session session = sessionFactory.openSession();

語法2

在指定的資料庫連線中開啟一個帶有區域性攔截器的 Session 範例。

openSession(Connection connection,Interceptor interceptor)

引數說明:
  • connection:一個資料庫連線。
  • interceptor:一個 Session 範圍的攔截器。

返回值:Session 範例。

範例

建立一個通過 JDBC 連線 SQL Server 資料庫的連線,並在該資料庫連線中開啟一個帶區域性攔截器的 Session 範例,關鍵程式碼如下:
Connection conn = null;
try{
  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");  //載入資料庫驅動
  String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_test
    Hibernate";  //定義連線資料庫的url
    conn = DriverManager.getConnection(url,"sa","");  //獲取資料庫連線物件
}catch(Exception e){
  e.printStackTrace();
}  //MyIntereptor為自定義的實現Interceptor介面的攔截器
Interceptor it = new MyInterceptor();
Session session = sessionFactory.openSession(conn,it);  //開啟Session

語法3

建立資料庫連線,並開啟一個帶有區域性攔截器的 Session 範例。

openSession(Interceptor interceptor)throws HibernateException

引數說明:
  • interceptor:一個Session範圍的攔截器。

返回值:Session 範例。

範例

通過 SessionFactory 建立一個帶有區域性欄截器的 Session 範例,關鍵程式碼如下:
SessionFactory sessionFactory = config.buildSessionFactory();  //MyIntereptor為自定義的實現Interceptor介面的攔截器
Interceptor it = new MyInterceptor();
Session session = sessionFactory.openSession(it);

語法4

在給定的資料庫連線中開啟一個 Session 範例。

openSession(Connection connection)

引數說明:
  • connection:一個資料庫連線。

返回值:Session 範例。

範例

在給定的資料庫連線中開啟一個 Session 範例,關鍵程式碼如下:
Connection conn = null;  //定義引數Connection物件
try{
  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");  //載入資料庫驅動
  String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_testHibernate";
  conn = DriverManager.getConnection(url,"sa","");
}catch(Exception e){
  e.printStackTrace();
}
Session session = sessionFactory.openSession(conn);  //開啟Session