mybatis常用配置

Mybatis的流程圖:



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>


發佈了72 篇原創文章 · 獲贊 15 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章