1.自定義别名的兩種設定
在mybatis中使用parameterType或者resultType必須寫全限定名。但我們可以使用系統别名或自定義别名的方式來簡化書寫
在mybatis配置檔案中
<typeAliases>
<!--方式1:聲明單個别名 使用時忽略大小寫-->
<!-- <typeAlias type="com.wgz.entity.MiddleStudent" alias="middleStudent"></typeAlias>-->
<!--方式2:掃描包聲明别名
為包下的所有實體類建立别名,即類名,且不區分大小寫
如:student ,StuDent
-->
<package name="com.wgz.entity"/>
</typeAliases>
使用
<select id="findStudentListByName" parameterType="string" resultType="Student">
select * from student_tb where name like '%${value}%'
</select>
- 當sql 語句需要參數 時,可以指定對應參數類型 parameter(也可以不寫,無影響),
- 當sql語句是查詢時需要指定resultType
- 增删改傳回的的時影響到的行數不需要指定
2.系統别名
在mybatis中TypeAliasRegistry已經為我們配置的預設别名
registerAlias("string", String.class);
registerAlias("byte", Byte.class);
registerAlias("long", Long.class);
registerAlias("short", Short.class);
registerAlias("int", Integer.class);
registerAlias("integer", Integer.class);
registerAlias("double", Double.class);
registerAlias("float", Float.class);
registerAlias("boolean", Boolean.class);
registerAlias("byte[]", Byte[].class);
registerAlias("long[]", Long[].class);
registerAlias("short[]", Short[].class);
registerAlias("int[]", Integer[].class);
registerAlias("integer[]", Integer[].class);
registerAlias("double[]", Double[].class);
registerAlias("float[]", Float[].class);
registerAlias("boolean[]", Boolean[].class);
registerAlias("_byte", byte.class);
registerAlias("_long", long.class);
registerAlias("_short", short.class);
registerAlias("_int", int.class);
registerAlias("_integer", int.class);
registerAlias("_double", double.class);
registerAlias("_float", float.class);
registerAlias("_boolean", boolean.class);
registerAlias("_byte[]", byte[].class);
registerAlias("_long[]", long[].class);
registerAlias("_short[]", short[].class);
registerAlias("_int[]", int[].class);
registerAlias("_integer[]", int[].class);
registerAlias("_double[]", double[].class);
registerAlias("_float[]", float[].class);
registerAlias("_boolean[]", boolean[].class);
registerAlias("date", Date.class);
registerAlias("decimal", BigDecimal.class);
registerAlias("bigdecimal", BigDecimal.class);
registerAlias("biginteger", BigInteger.class);
registerAlias("object", Object.class);
registerAlias("date[]", Date[].class);
registerAlias("decimal[]", BigDecimal[].class);
registerAlias("bigdecimal[]", BigDecimal[].class);
registerAlias("biginteger[]", BigInteger[].class);
registerAlias("object[]", Object[].class);
registerAlias("map", Map.class);
registerAlias("hashmap", HashMap.class);
registerAlias("list", List.class);
registerAlias("arraylist", ArrayList.class);
registerAlias("collection", Collection.class);
registerAlias("iterator", Iterator.class);
registerAlias("ResultSet", ResultSet.class);
3.開啟駝峰映射
駝峰映射,就是将滿足sql下劃線的标準寫法字段自動轉換為滿足java命名規則的實體屬性,不需要用resultMap自己建立映射關系。
如user資料表字段 : u_id , u_name,u_sex;
會自動轉換為User類屬性比對的字段:uId,uName,uSex;
<!--
開啟駝峰寫法 自動将資料庫表字段 s_address 映射為Java屬性 sAddress
<setting name="mapUnderscoreToCamelCase" value="true"/>
-->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
3.mybatis配置檔案内容和順序,必須為以下順序,否則會出現錯誤
<configuration><!--配置-->
<properties/><!--屬性-->
<settings/><!--設定-->
<typeAliases/><!--類型别名-->
<typeHandlers/><!--類型處理器-->
<objectFactory/><!--對象工廠-->
<plugins/><!--插件-->
<environments><!--配置環境-->
<environment><!--環境變量-->
<transactionManager/><!--事務管理器-->
<dataSource/><!--資料源-->
</environment>
</environments>
<databaseidProvider/><!--資料庫廠商辨別-->
<mappers/><!--映射器-->
</configuration>