Mybatis入門——基礎方式的增刪該查、mapper動態代理方式的CRUD、類型轉換器

 

一.基礎方式的增刪該查:
1.mybatis約定:輸入參數parameterType和輸出參數resulrType在形式上只能有一個。
2.若是輸入/輸出參數:是簡單類型(8個基本類型加String)則能夠使用任何佔位符,#{xxx};
                                若是是對象類型,則必須是對象的屬性,#{屬性名}。
3.輸出參數:若是返回值類型是一個對象(如Person),則不管返回一個仍是多個,在resultType都寫成org.lanqiao.entity.Person,即resultType="org.lanqiao.entity.Person"。
4.注意事項:a.若是使用的是JDBC事務方式則須要commit手動提,即session.commit();
                    b.全部的標籤<select>.<update>等,都必須有sql語句,但sql參數值可選
                        sql有參數:session.insert(statement,參數值);
 
二.mapper動態代理方式的CRUD(MyBatis接口開發):
原則:約定優於配置
硬編碼方式:abc.java
                                    Configuration conf=new Configuration();
                                    conf.setName("myProject");
配置方式:abc.xml
                                <name>myProject</name>
約定:默認值是myProject
 
具體實現的步驟:
1.基礎環境:mybatis.jar/ojdbc.jar/conf.xml/mapper.xml
2.(不一樣之處)約定的目標:省略掉statement,即根據約定,直接能夠定位到sql語句。
    a.接口,接口中的方法必須遵循如下約定:
          1)方法名和mapper.xml文件中標籤的id值相同;
          2)方法的輸入參數和mapper.xml文件中標籤的parameterType類型一致;
          3)方法的返回值和mapper.xml文件中標籤的resultType類型一致;
除了以上約定,要實現接口中的方法和Mapper.xml中的SQL標籤一一對應,還須要如下一點:
    1)namespace的值,就是接口的全類名(接口-mapper.xml一一對應)
匹配的過程:(約定的過程)
1.根據接口名找到mapper.xml文件
2.根據接口的方法名找到mapper.xml文件中的sql標籤(方法名=sql標籤的id)
習慣:SQL映射文件(mapper.xml)和接口放在同一個包中(注意修改conf.xml文件中加載mapper.xml的路徑)
代碼:PersonMappe personMapper=session.getMapper(PersonMapper.class);
     personMapper.方法
 
優化:
1.能夠將配置信息單獨放入db.properties文件中,而後再動態引入
db.properties;
    k=v
<properties resource="db.properties"/>
引入以後使用${key}
2.Mybaites全局參數
    <settings>
            <setting/>
    <settings/>
3.別名:(定義別名時大小寫無所謂)
    a.設置單個別名
    b.設置批量別名
除了自定義別名外,MyBatis還內置了一些常見類的別名。
 
三.類型轉換器:
1.MyBatis自帶的一些常見的類型處理器
    int——number
2.自定義MyBatis類型處理器
    Java——數據庫(jdbc類型)
自定義類型轉換器(boolean-number)步驟:
a.建立轉換器:須要實現TypeHandler接口
        要實現轉換器有兩種選擇:(1)實現接口TypeHandler接口
                                                 (2)繼承BaseTypeHandler
b.配置conf.xml
 
注意:設置Integer時必須是大寫。
 
resultMap能夠實現2個功能:
1.類型轉換
2.屬性-字段的映射關係
相關文章
相關標籤/搜索