问题描述
<!-- 插入操作 需要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>