一.基礎方式的增刪該查: 1.mybatis約定:輸入參數parameterType和輸出參數resulrType在形式上只能有一個。 2.如果輸入/輸出參數:是簡單類型(8個基本類型加String)則可以使用任何占位符,#{xxx}; 如果是對象類型,則必須是對象的屬性,#{屬性名}。 3.輸出參 ...
一.基礎方式的增刪該查: 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.屬性-欄位的映射關係