一.基礎方式的增刪該查:
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.屬性-字段的映射關係