MyBatis

作者: 冰冰大象 | 来源:发表于2019-06-25 15:50 被阅读0次

    http://www.mybatis.org/mybatis-3/sqlmap-xml.html
    中文
    http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html

    MapXML联合查询:

    <?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="com.example.demo.mapper.mu_roleMapper">
        <resultMap id="BaseResultMap" type="com.example.demo.model.mu_role">
            <!-- 主键 保证不会出现重复-->
            <id column="guid" jdbcType="VARCHAR" property="guid" />
            <result column="name" jdbcType="VARCHAR" property="name" />
            <result column="tjm_code" jdbcType="VARCHAR" property="tjm_code" />
    <!--        多表联合查询-->
            <collection property="list" ofType="自己定义的类型">
                <!-- 主键-->
                <id column="guid" jdbcType="VARCHAR" property="guid" />
                <result column="name" jdbcType="VARCHAR" property="name" />
            </collection>
        </resultMap>
       <select id="XMLtest"   resultMap="BaseResultMap">
           select a.guid,a.name,b.tjm_code from user_info a INNER JOIN user_tjm b on a.guid=b.user_info_guid
       </select>
      <!-- 使用autoMapping 实现多表关联-->
    <select id="XMLtest"   resultType="student">
      <!--  注意 `teacher.guid`的写法 必须带有`符号 此时会自动填充student类中的teacher 也叫特殊的起别名 -->
           select a.guid `teacher.guid`,a.name `teachar.name`,b.tjm_code from user_info a INNER JOIN user_tjm b on a.guid=b.user_info_guid
       </select>
    </mapper>
    

    多参数传递

    @Param注解传参法

    public User selectUser(@Param("userName") String name, int @Param("deptId") deptId);
    
    <select id="selectUser" resultMap="UserResultMap">
        select * from user
        where user_name = #{userName} and dept_id = #{deptId}
    </select>
    
    #{}里面的名称对应的是注解@Param括号里面修饰的名称。
    
    这种方法在参数不多的情况还是比较直观的,推荐使用。
    

    方法3:Map传参法

    public User selectUser(Map<String, Object> params);
    
    <select id="selectUser" parameterType="java.util.Map" resultMap="UserResultMap">
        select * from user
        where user_name = #{userName} and dept_id = #{deptId}
    </select>
    #{}里面的名称对应的是Map里面的key名称。
    
    这种方法适合传递多个参数,且参数易变能灵活传递的情况。
    

    方法4:Java Bean传参法

    public User selectUser(Map<String, Object> params);
    
    <select id="selectUser" parameterType="com.test.User" resultMap="UserResultMap">
        select * from user
        where user_name = #{userName} and dept_id = #{deptId}
    </select>
    

    相关文章

      网友评论

          本文标题:MyBatis

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