MyBatis

2019-06-25  本文已影响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>
上一篇下一篇

猜你喜欢

热点阅读