天天看點

Mybatis中的設計模式2.建立SqlSessionFactory工廠

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 就是那個施工隊 我們隻需要給他錢 其他的細節我們都不需要去操心 我們這是隻要使用就可以
           
  1. 建構者模式:把對象的建立細節隐藏,是使用者直接調用方法即可拿到對象。 ↩︎