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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章