Mybatis的流程圖:
1.config.xml引入mapper.xml:
可通過resource、class和url的方式引入Mapper.xml:
<?xml version="1.0" encoding= "UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd ">
<configuration>
<!-- mapping 文件路徑配置 -->
<mappers >
<!-- 單個目錄文件引入 -->
<mapper resource="mappers/commonMapper.xml" />
<mapper resource="mappers/productIndexMapper.xml" />
<!-- 單個類引入: mapper.xml 名稱和類名一樣,並且在同一個包內 -->
<mapper class="com.xy.mapper.CommonMapper" />
<!-- 批量引入 : mapper.xml 名稱和類名一樣,並且在同一個包內-->
<package name="com.xy.mapper" />
<!-- 外部引用 -->
<mapper url ="file:///D:/mapper/commonMapper.xml"/>
</mappers >
</configuration>
resource、class和url必須只能同時用一種。2.config.xml配置typeAliases(別名)
Mybatis在mapper.xml中對resultType和ParameterType都可以使用別名。
一個insert語句在mapper中的配置如下:
<insert id="insertCategory" parameterType="com.xy.domain.CategoryDTO">
<selectKey keyProperty="id" order="BEFORE" resultType="int">
select common_seq.nextval from dual
</selectKey>
insert into product_category (id,category_name,category_level,category_desc,createTime)
values
(#{id},#{categoryName},#{categoryLevel},#{categoryDesc},sysdate)
</insert>
此時parameterType指定的是一個全路徑的java類對象。
在mybatis中可以給這個類起一個別名,然後使用到該對象時候直接寫別名就可以。
mybatis對基本的java簡單對象都創建了別名,如下:
mybatis默認別名:
public 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);
}
config.xml中配置別名:
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 設置別名-->
<typeAliases>
<!--
單個別名
1.type爲指定domain的路徑
2.alias爲別名(可在resultType或者parameterType中直接使用)
-->
<typeAlias type="com.xy.domain.CategoryDTO"
alias="categoryDTO"/>
<!--
多個別名
name:指定包名,此包下所有的類自動創建別名
別名規則:類名首字母大寫或者小寫都可,其餘不變
-->
<package name="com.xy.domain" />
</typeAliases>
</configuration>