美文网首页
mybatis为实体类定义别名

mybatis为实体类定义别名

作者: 毛仑上保罗先生 | 来源:发表于2018-02-02 19:49 被阅读0次

在我们开发的时候包可能是一级一级的, 会有一些繁琐比如

<select id="getUser" parameterType="int"  resultType="cn.paul.User">
        select * from users where id=#{id}
    </select>

cn.paul.User 三个可能算少了 ,但是可能又cn.paul.xx.xx.User 这就很繁琐了,所以mybatis提供了给实体类定义别名的配置

在之前项目中的config.xml中

 <typeAliases>
        <typeAlias alias="_User" type="User"/> 
 </typeAliases>

把User定义别名为_User

定义别名了之后就可以在userMapper.xml中这样做了

<?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,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后缀)
 -->
<mapper namespace="userMapper">
    <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复
    使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型
    resultType="me.gacl.domain.User"就表示将查询结果封装成一个User类的对象返回
    User类就是users表所对应的实体类
    -->
    <!--
        根据id查询得到一个user对象
     -->
    <select id="getUser" parameterType="int"  resultType="_User">
        select * from users where id=#{id}
    </select>
    <select id="getAllUsers" resultType="_User">
        select * from users
    </select>
</mapper>

typeAliases里面还有一个packpage配置

<package name="cn.paul"></package>  

上述作用是将cn.paul包下面的实体类定义为去除包名的类名, 也就是User,

注意: 在给实体类添加别名的时候要注意配置节点的顺序

<?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>
    <properties resource="dbinfo.properties"/>
    <typeAliases>
        <typeAlias alias="_User" type="User"/> 
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <!-- 配置数据库连接信息 -->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}" />
                <property name="url" value="${url}" />
                <property name="username" value="${username}" />
                <property name="password" value="${password}" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
         <mapper resource="userMapper.xml" />
         <mapper class="userMapperDao"/>
    </mappers>
</configuration>

至于为什么要这么放请看官网配置
http://www.mybatis.org/mybatis-3/zh/configuration.html

相关文章

网友评论

      本文标题:mybatis为实体类定义别名

      本文链接:https://www.haomeiwen.com/subject/zioezxtx.html