// 1、讀取組態檔
/**
* 讀取組態檔的方式
* 1、絕對路徑:從磁盤位置讀取組態檔,如:F:/mybatis/mybatis-config.xml,缺點可能別的機器沒有F盤
* 2、相對路徑:相對路徑從專案的src目錄下開始,如:src/main/mybatis.xml,缺點:如果專案是web工程,一旦部署src目錄消失
* 3、使用類加載器(推薦):只能讀取類路徑下的組態檔
* 4、使用ServletContext物件的getRealPath(推薦):能得到當前應用部署的絕對路徑
*/
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
// 2、創建SqlSessionFactory工廠
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
/**
* 創建工廠使用了構建者模式:builder.build(in);
* 優勢:將物件的創建細節隱藏,使使用者直接呼叫該方法獲取物件
*/
SqlSessionFactory sqlSessionFactory = builder.build(in);
// 3、使用工廠生產SqlSession物件
/**
* 生產sqlSession使用了工廠模式:sqlSessionFactory.openSession()
* 通過工廠模式創建物件的好處:解決了硬編碼問題,
* 直接創建物件的缺點,會降低代碼的靈活程度,當需要創建別的物件時,這需要進入代碼中進行修改;
* 優勢:解耦(降低類之間的依賴關系)
*/
SqlSession sqlSession = sqlSessionFactory.openSession();
// 4、使用SQLSession創建Dao介面的代理物件
/**
* 創建mapper實作類使用了代理模式:sqlSession.getMapper(UserDao.class);
* 優勢:不修改原始碼的基礎上對已有方法增強
*/
UserDao userDao = sqlSession.getMapper(UserDao.class);
// 5、使用代理物件執行方法
List<User> users = userDao.findAllUser();
for (User user: users
) {
System.out.println(user);
}
// 6、釋放資源
sqlSession.close();
in.close();
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/149766.html
標籤:Java
上一篇:Java陣列的定義與使用
