public class MybatisTest {
/**
* mybatis入門案例
* @param args
*/
public static void main(String[] args) throws IOException {
//1.讀取配置檔案
InputStream resource = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.建立SqlSessionFactory工廠
//因為SqlSessionFactory 是一個接口 說明無法new出對象 是以找他的實作類來進行建立
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(resource);
//3.使用工廠生成SqlSession
SqlSession sqlSession = factory.openSession();
//4.使用SqlSession建立Dao接口的代理對象
IUserDao mapper = sqlSession.getMapper(IUserDao.class);
//5.使用代理對象執行方法
List<User> all = mapper.findAll();
for (User user : all){
System.out.println(user);
}
//6.釋放資源
sqlSession.close();
resource.close();
}
}
1.擷取配置檔案注意事項
擷取配置檔案時應該注意使用的方法
1.絕對路徑:D:/xxxx/xxxx.xml
2.相對路徑:src/java/main/xxxx.xml
在項目中隻是用兩種方式擷取配置檔案資訊
1.使用類加載器,但是它隻能擷取類路徑的配置檔案
2.使用ServletContext對象的getRealPath()
這兩種方法會避免 項目部署伺服器路徑導緻發生的問題
2.建立SqlSessionFactory工廠
//2.建立SqlSessionFactory工廠
//因為SqlSessionFactory 是一個接口 說明無法new出對象 是以找他的實作類來進行建立
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();//這裡沒什麼好說的
SqlSessionFactory factory = builder.build(resource);//重點!! 建構者模式
這裡使用了設計模式中的建構者模式1
我們這裡使用的工廠 不是我們自己建立的 而是别人幫我們建立的
比如我們現在要建立一座工廠 我們要考慮
1.工廠的選址
2.工廠所需要的材料
3.預估建立工廠的人員
4.預估需要的時間,金錢等等 一些問題
那麼這些問題對于我們來說耗時又耗力 而且最後我們還不一定能做好
那麼我們怎麼辦呢?
我們隻需要找一個包工隊 那麼上面的問題就不需要我們去操心了 我們隻需要告訴他
1.我們的需求
2.給錢
//2.建立SqlSessionFactory工廠
//因為SqlSessionFactory 是一個接口 說明無法new出對象 是以找他的實作類來進行建立
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();//這裡沒什麼好說的
SqlSessionFactory factory = builder.build(resource);
//那麼這個時候build 就是那個施工隊 我們隻需要給他錢 其他的細節我們都不需要去操心 我們這是隻要使用就可以
- 建構者模式:把對象的建立細節隐藏,是使用者直接調用方法即可拿到對象。 ↩︎