myBatis開發過程

(1)編寫SqlMapConfig.xml文件
(2)編寫mapper.xml;
(3)通過配置文件,編程創建SqlSessionFactory;
(4)通過SqlSessionFactory獲取SqlSession
(5)通過SqlSession操作數據庫,如執行添加,更新,刪除,需要調用SqlSession.Commit();
(6)SqlSession使用完後進行關閉。
例如:向用戶表插入一條記錄。
User.xml文件如下:

<insert id="insertUser" parameterType="cn.xd.mybatis.po.User">
    INSERT INTO USER(username,birthday,sex,address)
    VALUES(#{username},#{birthday},#{sex},#{address})
</insert>

創建會話工廠:SqlSessionFactory

//會話工廠
private SqlSessionFactory sqlSessionFactory ;
//創建工廠
@Before
public void init throws IoException{
    //配置文件
    String resource="SqlMapConfig.xml";
    //加載而配置文件到輸入流
    InputStream inputStream=Resources.getResourceAsStream(resource);
    //創建會話工廠
    sqlSessionFactory=new SqlSessionFactoryBulider().build(inputStream);
}

通過SqlSessionFactory獲取SqlSession,,並操作數據庫:

public void testInsertUser(){
    //通過SqlSessionFactory創建SqlSession
    SqlSession sqlSession=SqlSessionFactory.openSession();
    //通過SqlSession操作數據庫,首先創建一個插入的數據對象
    User user=new User();
    user.setUser("小明");
    user.setAddress("北京");
    user.setBirthday(new Date());
    user.setSext("1");
    try{
        sqlSession.insert("test.insertUser",user)
        //需要提交的事務
        sqlSession.commit();
    }catch(Exception e){
        e.printStackTrace();
    }finally{
        sqlSession.close();
    }
}

Mybatis解決jdbc編程的問題:
1、數據庫鏈接創建、釋放頻繁造成系統資源浪費從而影響系統性能,如果使用數據庫鏈接池可解決此問題。
解決:在SqlMapConfig.xml中配置數據鏈接池,使用連接池管理數據庫鏈接。
2、Sql語句寫在代碼中造成代碼不易維護,實際應用sql變化的可能較大,sql變動需要改變java代碼。
解決:將Sql語句配置在XXXXmapper.xml文件中與java代碼分離。
3、向sql語句傳參數麻煩,因爲sql語句的where條件不一定,可能多也可能少,佔位符需要和參數一一對應。
解決:Mybatis自動將java對象映射至sql語句,通過statement中的parameterType定義輸入參數的類型。
4、對結果集解析麻煩,sql變化導致解析代碼變化,且解析前需要遍歷,如果能將數據庫記錄封裝成pojo對象解析比較方便。
解決:Mybatis自動將sql執行結果映射至java對象,通過statement中的resultType定義輸出結果的類型。

mybatis與hibernate重要區別
企業開發進行技術選型 ,考慮mybatis與hibernate適用場景。
mybatis:入門簡單,程序容易上手開發,節省開發成本 。mybatis需要程序員自己編寫sql語句,是一個不完全 的ORM框架,對sql修改和優化非常容易實現 。
mybatis適合開發需求變更頻繁的系統,比如:互聯網項目。
hibernate:入門門檻高,如果用hibernate寫出高性能的程序不容易實現。hibernate不用寫sql語句,是一個 ORM框架。
hibernate適合需求固定,對象數據模型穩定,中小型項目,比如:企業OA系統。

總之,企業在技術選型時根據項目實際情況,以降低成本和提高系統 可維護性爲出發點進行技術選型。

發佈了42 篇原創文章 · 獲贊 8 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章