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>