天天看點

MyBatis資料持久化(四)類型别名

Mybatis的類型别名指的是我們可以為Java類型自定義一個簡短的名字,以達到簡化配置的目的,在上篇博文中我們的sql語句配置檔案内容如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="User">
    <select id="queryUserInfoByName" parameterType="string"  resultType="com.mybatis.domain.User">
        select * from User where username = #{username}
    </select>

    <insert id="saveUser" parameterType="com.mybatis.domain.User">
        insert into user(username,password,phone) values(#{username},#{password},#{phone});
    </insert>

    <update id="updateUser" parameterType="com.mybatis.domain.User">
        update user set password=#{password} where username=#{username}
    </update>

    <delete id="deleteUser" parameterType="com.mybatis.domain.User">
        delete from user where username = #{username}
    </delete>
</mapper>           

可以看到一些标簽的resultType和parameterType屬性值為

com.mybatis.domain.User

,我們可以為這種類型定義一個簡單一點的名字,比如就叫user。

具體做法非常簡單,打開mybatis資料源配置檔案SqlMapConfig.xml,通過typeAliases标簽來完成:

<?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>
    <!-- 自定義類型别名 -->
    <typeAliases>
        <typeAlias alias="user" type="com.mybatis.domain.User"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
        <transactionManager type="JDBC"/>
        <dataSource type="POOLED">
            <property name="driver" value="com.mysql.jdbc.Driver"/>
            <property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=UTF8"/>
            <property name="username" value="root"/>
            <property name="password" value=""/>
        </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="User.xml"/>
    </mappers>
</configuration>           
<typeAliases>
        <typeAlias alias="user" type="com.mybatis.domain.User"/>
  </typeAliases>           
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="User">
    <select id="queryUserInfoByName" parameterType="string"  resultType="user">
        select * from User where username = #{username}
    </select>
    <insert id="saveUser" parameterType="user">
        insert into user(username,password,phone) values(#{username},#{password},#{phone});
    </insert>

    <update id="updateUser" parameterType="user">
        update user set password=#{password} where username=#{username}
    </update>

    <delete id="deleteUser" parameterType="user">
        delete from user where username = #{username}
    </delete>
</mapper>