天天看點

mybatis常用配置1.config.xml引入mapper.xml:2.config.xml配置typeAliases(别名)

Mybatis的流程圖:

mybatis常用配置1.config.xml引入mapper.xml:2.config.xml配置typeAliases(别名)

1.config.xml引入mapper.xml:

mapper.xml是mybatis中必不可少的東西,包含了所有的statement和對資料庫處理的sql。 通過在config.xml中引入xxxMapper.xml來實作sql的調用和加載。

可通過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>
           

繼續閱讀