Mybatis入門案例簡單分析
阿新 • • 發佈:2018-12-20
Mybatis的快速入門
public void testFindAll() throws IOException { // 讀取配置檔案 InputStream inputStream = MybatisTest.class.getClassLoader().getResourceAsStream("SqlMapConfig.xml"); // 獲取SqlSessionFactory物件 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream); // 使用工廠生產SqlSession物件 SqlSession sqlSession = factory.openSession(); // 使用SqlSession建立Dao介面的代理物件 IUserDao userDao = sqlSession.getMapper(IUserDao.class); // 執行查詢所有方法 List<User> userList = userDao.findAll(); for (User user : userList) { System.out.println(user); } // 釋放資源 sqlSession.close(); inputStream.close(); }
- 讀取配置檔案遇到的問題,絕對路徑和相對路徑,他們都有各自的問題,所以我們在開發中大概只使用兩種. 一.類載入器,讀取類路徑的配置檔案 二.使用ServletContext的getRealPath()得到當前專案部署的路徑.
- new SqlSessionFactoryBuilder() 使用了構建者設計模式,隱藏了物件的建立細節
- 建立SqlSession物件使用了工廠模式 降低了類之間的依賴關係
- session.getMapper(IUserDao.class) 使用了代理模式 不修改原始碼的情況下對已有方法增強.
為什麼要加這些東西呢?為了靈活,為了在開發中選擇更多,在後面開發中我們之間拿來使用,而細節會被之間隱藏掉. 好了,我們大概的瞭解了Mybatis的基於代理Dao的流程,接下來我們來自定義一個Mybatis.