mybatis3 类型别名

问题描述

    <!-- 插入操作 需要user参数 -->
    <insert id="insertUser" parameterType="cn.bitqian.entity.User">
        insert into users1 values (#{userId}, #{userName}, #{userPassword})
    </insert>

    <!-- 修改操作 -->
    <update id="updateUser" parameterType="cn.bitqian.entity.User">
        update users1 set username = #{userName}, userpassword = #{userPassword}
        where userid = #{userId}
    </update>

    <!-- 根据id删除某个user -->
    <delete id="deleteUser" parameterType="java.lang.Integer">
        delete from users1 where userid = #{userId}
    </delete>

以上的每个parameterType都要写全包名+类名,
及其繁琐,所有需要标签对其进行抽取。

解决方案

类型别名可为 Java 类型设置一个缩写名字。
 它仅用于 XML 配置,意在降低冗余的全限定类名书写。
  • 类型别名(typeAliases)
类型别名可为 Java 类型设置一个缩写名字。 
它仅用于 XML 配置,意在降低冗余的全限定类名书写。
<typeAliases>
  <typeAlias alias="user" type="cn.bitqian.entity.User"/>
  <typeAlias alias="user" type="cn.bitqian.entity.Order"/>
</typeAliases>

写法变得简洁:

<mapper>
    <insert id="insertUser" parameterType="user">
        insert into users1 values (#{userId}, #{userName}, #{userPassword})
    </insert>
</mapper>
  • 一些Java提供的数据类型和mybatis对应的类型相比
别名 映射类型
_byte byte
_long long
_short short
_int int
_integer int
_double double
_float float
_boolean boolean
string String
byte Byte
long Long
short Short
int Integer
integer Integer
double Double
float Float
boolean Boolean
date Date
decimal BigDecimal
bigdecimal BigDecimal
object Object
map Map
hashmap HashMap
list List
arraylist ArrayList
collection Collection
iterator Iterator

方案二,直接扫描包

<typeAliases>
  <package name="cn.bitqian.entity"/>
</typeAliases>
<mapper>
	<!-- 实体类名称 -->
    <insert id="insertUser" parameterType="User">
        insert into users1 values (#{userId}, #{userName}, #{userPassword})
    </insert>
</mapper>

猜你喜欢

转载自blog.csdn.net/qq_44783283/article/details/108537089