SSM_CRUD新手练习(4)修改生成的mapper.xml映射文件
我们为什么要修改呢,这是因为我们查询的时候,我们有时候需要连表查询,例如我们需要查询出员工表的信息(emp_id,emp_name...)与此同时,我们还想查询出该员工所在的部门(dept_name)。此时,生成mapper文件查询的只是表中已有的字段。
所以我们可以在EmployeeMapper.xml中添加两个方法,
同时我们还要为Employee.java添加一个Department属性,别忘记增加setter和getter。
最后我们需要修改EmployeeMapper.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="com.atguigu.crud.dao.EmployeeMapper">
- <resultMap id="BaseResultMap" type="com.atguigu.crud.bean.Employee">
- <!--
- WARNING - @mbg.generated
- This element is automatically generated by MyBatis Generator, do not modify.
- This element was generated on Thu Oct 18 13:46:16 CST 2018.
- -->
- <id column="emp_id" jdbcType="INTEGER" property="empId" />
- <result column="emp_name" jdbcType="VARCHAR" property="empName" />
- <result column="gender" jdbcType="CHAR" property="gender" />
- <result column="email" jdbcType="VARCHAR" property="email" />
- <result column="d_id" jdbcType="INTEGER" property="dId" />
- </resultMap>
- <resultMap type="com.atguigu.crud.bean.Employee" id="WithDeptResultMap">
- <id column="emp_id" jdbcType="INTEGER" property="empId" />
- <result column="emp_name" jdbcType="VARCHAR" property="empName" />
- <result column="gender" jdbcType="CHAR" property="gender" />
- <result column="email" jdbcType="VARCHAR" property="email" />
- <result column="d_id" jdbcType="INTEGER" property="dId" />
- <association property="department" javaType="com.atguigu.crud.bean.Department">
- <id column="dept_id" property="deptId"/>
- <result column="dept_name" property="deptName"/>
- </association>
- </resultMap>
- <sql id="Example_Where_Clause">
- <!--
- WARNING - @mbg.generated
- This element is automatically generated by MyBatis Generator, do not modify.
- This element was generated on Thu Oct 18 13:46:16 CST 2018.
- -->
- <where>
- <foreach collection="oredCriteria" item="criteria" separator="or">
- <if test="criteria.valid">
- <trim prefix="(" prefixOverrides="and" suffix=")">
- <foreach collection="criteria.criteria" item="criterion">
- <choose>
- <when test="criterion.noValue">
- and ${criterion.condition}
- </when>
- <when test="criterion.singleValue">
- and ${criterion.condition} #{criterion.value}
- </when>
- <when test="criterion.betweenValue">
- and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
- </when>
- <when test="criterion.listValue">
- and ${criterion.condition}
- <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
- #{listItem}
- </foreach>
- </when>
- </choose>
- </foreach>
- </trim>
- </if>
- </foreach>
- </where>
- </sql>
- <sql id="Update_By_Example_Where_Clause">
- <!--
- WARNING - @mbg.generated
- This element is automatically generated by MyBatis Generator, do not modify.
- This element was generated on Thu Oct 18 13:46:16 CST 2018.
- -->
- <where>
- <foreach collection="example.oredCriteria" item="criteria" separator="or">
- <if test="criteria.valid">
- <trim prefix="(" prefixOverrides="and" suffix=")">
- <foreach collection="criteria.criteria" item="criterion">
- <choose>
- <when test="criterion.noValue">
- and ${criterion.condition}
- </when>
- <when test="criterion.singleValue">
- and ${criterion.condition} #{criterion.value}
- </when>
- <when test="criterion.betweenValue">
- and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
- </when>
- <when test="criterion.listValue">
- and ${criterion.condition}
- <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
- #{listItem}
- </foreach>
- </when>
- </choose>
- </foreach>
- </trim>
- </if>
- </foreach>
- </where>
- </sql>
- <sql id="Base_Column_List">
- <!--
- WARNING - @mbg.generated
- This element is automatically generated by MyBatis Generator, do not modify.
- This element was generated on Thu Oct 18 13:46:16 CST 2018.
- -->
- emp_id, emp_name, gender, email, d_id
- </sql>
- <sql id="WithDept_Column_List">
- e.emp_id, e.emp_name, e.gender, e.email, e.d_id,d.dept_id,d.dept_name
- </sql>
- <!-- 带部门的两个查询 -->
- <select id="selectByExampleWithDept" resultMap="WithDeptResultMap">
- select
- <if test="distinct">
- distinct
- </if>
- <include refid="WithDept_Column_List" />
- from tbl_emp e left join tbl_dept d on e.d_id=d.dept_id
- <if test="_parameter != null">
- <include refid="Example_Where_Clause" />
- </if>
- <if test="orderByClause != null">
- order by ${orderByClause}
- </if>
- </select>
- <!-- 带部门的主键查询 -->
- <select id="selectByPrimaryKeyWithDept" resultMap="WithDeptResultMap">
- select
- <include refid="WithDept_Column_List" />
- from tbl_emp e left join tbl_dept d on e.d_id=d.dept_id where emp_id = #{empId,jdbcType=INTEGER}
- </select>
- <select id="selectByExample" parameterType="com.atguigu.crud.bean.EmployeeExample" resultMap="BaseResultMap">
- <!--
- WARNING - @mbg.generated
- This element is automatically generated by MyBatis Generator, do not modify.
- This element was generated on Thu Oct 18 13:46:16 CST 2018.
- -->
- select
- <if test="distinct">
- distinct
- </if>
- <include refid="Base_Column_List" />
- from tbl_emp
- <if test="_parameter != null">
- <include refid="Example_Where_Clause" />
- </if>
- <if test="orderByClause != null">
- order by ${orderByClause}
- </if>
- </select>
- <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
- <!--
- WARNING - @mbg.generated
- This element is automatically generated by MyBatis Generator, do not modify.
- This element was generated on Thu Oct 18 13:46:16 CST 2018.
- -->
- select
- <include refid="Base_Column_List" />
- from tbl_emp
- where emp_id = #{empId,jdbcType=INTEGER}
- </select>
- <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
- <!--
- WARNING - @mbg.generated
- This element is automatically generated by MyBatis Generator, do not modify.
- This element was generated on Thu Oct 18 13:46:16 CST 2018.
- -->
- delete from tbl_emp
- where emp_id = #{empId,jdbcType=INTEGER}
- </delete>
- <delete id="deleteByExample" parameterType="com.atguigu.crud.bean.EmployeeExample">
- <!--
- WARNING - @mbg.generated
- This element is automatically generated by MyBatis Generator, do not modify.
- This element was generated on Thu Oct 18 13:46:16 CST 2018.
- -->
- delete from tbl_emp
- <if test="_parameter != null">
- <include refid="Example_Where_Clause" />
- </if>
- </delete>
- <insert id="insert" parameterType="com.atguigu.crud.bean.Employee">
- <!--
- WARNING - @mbg.generated
- This element is automatically generated by MyBatis Generator, do not modify.
- This element was generated on Thu Oct 18 13:46:16 CST 2018.
- -->
- insert into tbl_emp (emp_id, emp_name, gender,
- email, d_id)
- values (#{empId,jdbcType=INTEGER}, #{empName,jdbcType=VARCHAR}, #{gender,jdbcType=CHAR},
- #{email,jdbcType=VARCHAR}, #{dId,jdbcType=INTEGER})
- </insert>
- <insert id="insertSelective" parameterType="com.atguigu.crud.bean.Employee">
- <!--
- WARNING - @mbg.generated
- This element is automatically generated by MyBatis Generator, do not modify.
- This element was generated on Thu Oct 18 13:46:16 CST 2018.
- -->
- insert into tbl_emp
- <trim prefix="(" suffix=")" suffixOverrides=",">
- <if test="empId != null">
- emp_id,
- </if>
- <if test="empName != null">
- emp_name,
- </if>
- <if test="gender != null">
- gender,
- </if>
- <if test="email != null">
- email,
- </if>
- <if test="dId != null">
- d_id,
- </if>
- </trim>
- <trim prefix="values (" suffix=")" suffixOverrides=",">
- <if test="empId != null">
- #{empId,jdbcType=INTEGER},
- </if>
- <if test="empName != null">
- #{empName,jdbcType=VARCHAR},
- </if>
- <if test="gender != null">
- #{gender,jdbcType=CHAR},
- </if>
- <if test="email != null">
- #{email,jdbcType=VARCHAR},
- </if>
- <if test="dId != null">
- #{dId,jdbcType=INTEGER},
- </if>
- </trim>
- </insert>
- <select id="countByExample" parameterType="com.atguigu.crud.bean.EmployeeExample" resultType="java.lang.Long">
- <!--
- WARNING - @mbg.generated
- This element is automatically generated by MyBatis Generator, do not modify.
- This element was generated on Thu Oct 18 13:46:16 CST 2018.
- -->
- select count(*) from tbl_emp
- <if test="_parameter != null">
- <include refid="Example_Where_Clause" />
- </if>
- </select>
- <update id="updateByExampleSelective" parameterType="map">
- <!--
- WARNING - @mbg.generated
- This element is automatically generated by MyBatis Generator, do not modify.
- This element was generated on Thu Oct 18 13:46:16 CST 2018.
- -->
- update tbl_emp
- <set>
- <if test="record.empId != null">
- emp_id = #{record.empId,jdbcType=INTEGER},
- </if>
- <if test="record.empName != null">
- emp_name = #{record.empName,jdbcType=VARCHAR},
- </if>
- <if test="record.gender != null">
- gender = #{record.gender,jdbcType=CHAR},
- </if>
- <if test="record.email != null">
- email = #{record.email,jdbcType=VARCHAR},
- </if>
- <if test="record.dId != null">
- d_id = #{record.dId,jdbcType=INTEGER},
- </if>
- </set>
- <if test="_parameter != null">
- <include refid="Update_By_Example_Where_Clause" />
- </if>
- </update>
- <update id="updateByExample" parameterType="map">
- <!--
- WARNING - @mbg.generated
- This element is automatically generated by MyBatis Generator, do not modify.
- This element was generated on Thu Oct 18 13:46:16 CST 2018.
- -->
- update tbl_emp
- set emp_id = #{record.empId,jdbcType=INTEGER},
- emp_name = #{record.empName,jdbcType=VARCHAR},
- gender = #{record.gender,jdbcType=CHAR},
- email = #{record.email,jdbcType=VARCHAR},
- d_id = #{record.dId,jdbcType=INTEGER}
- <if test="_parameter != null">
- <include refid="Update_By_Example_Where_Clause" />
- </if>
- </update>
- <update id="updateByPrimaryKeySelective" parameterType="com.atguigu.crud.bean.Employee">
- <!--
- WARNING - @mbg.generated
- This element is automatically generated by MyBatis Generator, do not modify.
- This element was generated on Thu Oct 18 13:46:16 CST 2018.
- -->
- update tbl_emp
- <set>
- <if test="empName != null">
- emp_name = #{empName,jdbcType=VARCHAR},
- </if>
- <if test="gender != null">
- gender = #{gender,jdbcType=CHAR},
- </if>
- <if test="email != null">
- email = #{email,jdbcType=VARCHAR},
- </if>
- <if test="dId != null">
- d_id = #{dId,jdbcType=INTEGER},
- </if>
- </set>
- where emp_id = #{empId,jdbcType=INTEGER}
- </update>
- <update id="updateByPrimaryKey" parameterType="com.atguigu.crud.bean.Employee">
- <!--
- WARNING - @mbg.generated
- This element is automatically generated by MyBatis Generator, do not modify.
- This element was generated on Thu Oct 18 13:46:16 CST 2018.
- -->
- update tbl_emp
- set emp_name = #{empName,jdbcType=VARCHAR},
- gender = #{gender,jdbcType=CHAR},
- email = #{email,jdbcType=VARCHAR},
- d_id = #{dId,jdbcType=INTEGER}
- where emp_id = #{empId,jdbcType=INTEGER}
- </update>
- </mapper>
现在,我们就能查询出带部门信息的员工表了。
SSM_CRUD新手练习(4)修改生成的mapper.xml映射文件的更多相关文章
- Mybatis学习--Mapper.xml映射文件
简介 Mapper.xml映射文件中定义了操作数据库的sql,每个sql是一个statement,映射文件是mybatis的核心. 映射文件中有很多属性,常用的就是parameterType(输入类型 ...
- Mybatis中的Mapper.xml映射文件sql查询接收多个参数
我们都知道,在Mybatis中的Mapper.xml映射文件可以定制动态SQL,在dao层定义的接口中定义的参数传到xml文件中之后,在查询之前mybatis会对其进行动态解析,通常使用#{}接收 ...
- Mapper.xml映射文件
查询订单关联查询用户: 使用resultType,ordersCustom可以通过继承orders获得其属性,再添加我们需要的用户字段. 使用resultMap,orders表中通过封装user对象来 ...
- MyBatis 逆向工程——根据数据表自动生成model、xml映射文件、mapper接口
MyBatis Generator(MBG)的使用 MBG可以根据数据表生成对应的model.xml映射文件.mapper接口,只是简单的生成,还需要根据需求修改. 1.下载jar包 https:// ...
- MyBatis - 3.Mapper XML映射文件
SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序): cache – 给定命名空间的缓存配置. cache-ref – 其他命名空间缓存配置的引用. resultMap – 是最复杂也是 ...
- mybatis Mapper XML 映射文件
传送门:mybatis官方文档 Mapper XML 文件详解 一. 数据查询语句 1. select <select id="selectPerson" parameter ...
- MyBatis学习存档(3)——mapper.xml映射文件
MyBatis 真正的强大在于映射语句,专注于SQL,功能强大,SQL映射的配置却是相当简单 所以我们来看看映射文件的具体结构 一.xml节点结构 mapper为根节点 - namespace命名空间 ...
- 在mapper.xml映射文件中添加中文注释报错
问题描述: 在写mapper.xml文件时,想给操作数据库语句添加一些中文注释,添加后运行报如下错误: 思考 可能是写了中文注释,编译器在解析xml文件时,未能成功转码,从而导致乱码.但是文件开头也采 ...
- 整合mybaties 逆向生成 pojo mapper.xml
第一步:配置properties 第二步:放入generatorConfig.xml文件 在总目录下 这个是生成工具 第三步:放入工具类,自动生成用的, pom里面要加入6个依赖 第四步:运行u ...
随机推荐
- c# 策略模式 加工厂模式-对象与行为分离
计算器程序 策略模式是一种行为学模式.行为是同等级的算法 ,这些行为每个模式封装到一个类里 上端提供数据 ,下端提供算法 ,中间层context context 把上端的数据和算法 放到co ...
- Android.DebugOnDevices
真机调试Android http://www.cnblogs.com/junqilian/archive/2012/11/08/2760734.html
- DIOCP组件(Delphi IOCP)代码阅读之ADO内存表
DIOCP组件(Delphi IOCP)代码阅读之ADO内存表 代码中有 class procedure TADOTools.loadFromStream(pvDataSet: TCustomADOD ...
- 一种基于URL数据源的WEB报表插件
完全支持所见所得的报表设计, 支持 PHP ,Java 等所有支持JSON格式的后端. 立即下载测试版本 需要正式版本?请QQ联系:1565498246 或者留言
- swift 要点
swift 基本语法注意点 通常来说,编程语言教程中的第一个程序应该在屏幕上打印“Hello, world”.在 Swift 中,可以用一行代码实现 print("Hello, world! ...
- Spring 注解(二)注解工具类 AnnotationUtils 和 AnnotatedElementUtils
Spring 注解(二)注解工具类 AnnotationUtils 和 AnnotatedElementUtils Spring 系列目录(https://www.cnblogs.com/binary ...
- install virtualenv
$ [sudo] pip install virtualenv $ mkdir ~/envs $ virtualenv ~/envs/lsbaws/ $ cd ~/envs/lsbaws/ $ ls ...
- jQuery Autocomplete 备忘录
之前使用过此 widget,如今再次需要,发现很多东西已经记不起来了,当然之前用的版本也不一样. 使用之前当然是先认真阅读官方的说明文档和示例,这点很重要,而不是东一块西一点的去网上瞎找资料.Opti ...
- windows下tomcat+nginx+openssl配置双向认证
1. 基础知识 CA证书:https://blog.csdn.net/yangyuge1987/article/details/79209473 SSL双向认证原理:https://blog.csdn ...
- 正则表达式,re模块
一.正则表达式 正则表达式 : 匹配字符串,一般用于爬取数据. 正则表达式查询网址 : http://tool.chinaz.com/regex/?qq-pf-to=pcqq.group 1.元字符( ...