提示:有不清楚的可以试着看一下我最后的连接,是跟这些内容相关的

Mapper文件,特殊符号:

转义符号 原符号 中文意思
&It; < 小于号
&gt; > 大于号
&amp; &
&apos; ' 单引号
&quot; " 双引号

在Mapper xml文件写一些符号,有时候识别不了,就会出错,就需要用到上面的转义字符了。

或者为了方便用<![CDATA[]]>也是可以的,在下面的例子代码也有用到。

例如:

1 col_name <![CDATA[ >= ]]> #{colVal}  【例1】
2
3 <![CDATA[ and w.WORK_DAY <= #{workdayEnd} ]]> 【例2】
Mapperxml文件的参数说明
   resultMap:resultMap是Mybatis最强大的元素,它可以将查询到的复杂数据(比如好几个表结合起来的数据)映射到【某个类型】的集当中。
        例如:我已经写好了需要的pojo类【workRecordBo】,里面有我需要用的字段。
        写类字段需要注意:

          mybatis默认是属性名和数据库字段名一一对应的,即
          数据库表列:user_name
          实体类属性:user_name

          但是java中一般使用驼峰命名
          数据库表列:user_name
          实体类属性:userName

        我在xml中需要这样写:property="类里面的字段名" ,column="数据库里面对应的字段"
1 <resultMap id="workRecordBo" type="com.ribao.entity.bo.WorkRecordBo" >
2 <result property="workDay" column="WORK_DAY"/>
3 </resultMap>
id:与继承BaseMapper的接口中的方法名一样

   例如:我的接口是这样的 public interface WorkRecordMapper extends BaseMapper<WorkRecord>{}
     我的方法名: public void getWorkRecord(@Param("workdayStart")String workdayStart,@Param("workdayEnd")String workdayEnd,@Param("teamid")String teamid);

      @Param()是与xml文件中的#{}绑定在一起的,名字一定要相同,数据类型也要相同。

    例如:@Param("workdayStart")对应xml文件的 #{workdayStart}

resultType:resultType是sql映射文件中定义返回值类型,返回值有基本类型,对象类型,List类型,Map类型等,这里目前只说【对象类型】
      对象类型:写全类名
       例如:package com.ribao.entity.bo;
          public class WorkRecordBo {......}  
         我的类名就是:resultType="com.ribao.entity.bo.WorkRecordBo"
Mapper的xml文件写select语句+where条件筛选:
 1 <select id="selectWorkRecord" resultType="com.ribao.entity.bo.WorkRecordBo" resultMap="workRecordBo">
2 SELECT e.EMPLOYEE_ID,t.TEAM_NAME,p.PROJECT_NAME,b.BIG_NAME,s.SMALL_NAME,l.LAN_NAME,WORK_DA,w.REMARK
3 from WORKRECORD w
4 join PROJECT p on p.PROJECT_ID=w.PROJECT_ID
5 join BIGCATEGORY b on b.BIG_ID=w.BIG_ID
6 join SMALLCATEGORY s on s.SMALL_ID=w.SMALL_ID
7 join EMPLOYEE e on e.EMPLOYEE_ID=w.EMPLOYEE_ID
8 join TEAM t on t.TEAM_ID=w.TEAM_ID
9 join LANGUAGE l on l.LAN_NO=w.LAN_NO
10
11 <where>
12 <if test="workdayStart != null and workdayStart !='' " >//workdayStart为非空的时候执行
13 w.WORK_DAY >= #{workdayStart}
14 </if>
15
16 <if test="workdayEnd != null and workdayEnd !='' " >
17 <![CDATA[ and w.WORK_DAY <= #{workdayEnd} ]]>
18 </if>
19
20 <if test="teamidList != null and teamidList !='' " >
21 and w.TEAM_ID in
22 <foreach collection="teamidList" index="index" item="teamid" open="(" separator="," close=")">
23 #{teamid}
24 </foreach>
25 </if>
26
27 </where>

可参考的博客:

【Java】数据库mapper与实体字段对应,SpringBoot开启驼峰映射  网址:https://blog.csdn.net/hr952909686/article/details/91344655

Mybatis:resultMap的使用总结网址:https://www.cnblogs.com/kenhome/p/7764398.html

学习 mybatis的官方网址:https://mybatis.org/mybatis-3/zh/sqlmap-xml.html

mybatis里的mapper,@Mapper参数,Mapper.xml文件 sql语句Select+where语句的更多相关文章

  1. Java Persistence with MyBatis 3(中文版) 第三章 使用XML配置SQL映射器

    关系型数据库和SQL是经受时间考验和验证的数据存储机制.和其他的ORM 框架如Hibernate不同,MyBatis鼓励开发者可以直接使用数据库,而不是将其对开发者隐藏,因为这样可以充分发挥数据库服务 ...

  2. 做参数可以读取参数 保存参数 用xml文件的方式

    做参数可以读取参数 保存参数 用xml文件的方式 好处:供不同用户保存适合自己使用的参数

  3. Hibernate中:不看数据库,不看XML文件,不看查询语句,怎么样能知道表结构?

    Hibernate中:不看数据库,不看XML文件,不看查询语句,怎么样能知道表结构? 解答:可以看与XML文件对应的域模型.

  4. 搜索某个目录下所有jar包中的mapper目录下的xml文件

    rm -rf /mapper/* find /data/app/app-*/lib ! -path "*xnpush*" ! -path "*portal*" ...

  5. xml文件sql中大于号、小于号、等号的转义问题

    1.用小于或小于等于的场景 代码1: <delete id="delOvertimeLog" parameterType="java.lang.Integer&qu ...

  6. mybatis的Mapper.xml文件SQL语句BadSqlGrammarException之FUNCTION错误系列

    想必各位在开发过程中一定使用过:统计的功能,用到了很多SQL的函数,于是就直接写在Mapper文件中了: 比如: member_num,MAX(ID) AS newestLoanID,MIN (ID) ...

  7. idea通过mapper快速定位到xml文件

    1.点击File找到设置(Settings) 2.点击Plugins下的 Browse respositories 3.在搜索栏搜索mybatis ,选中 Free Mybatis plugin——i ...

  8. idea从mapper接口跳到xml文件

  9. intellij idea快速通过mapper跳转到xml文件

    安装完之后重启idea即可!

随机推荐

  1. 跟我一起学.NetCore之日志(Log)模型核心

    前言 鲁迅都说:没有日志的系统不能上线(鲁迅说:这句我没说过,但是在理)!日志对于一个系统而言,特别重要,不管是用于事务审计,还是用于系统排错,还是用于安全追踪.....都扮演了很重要的角色:之前有很 ...

  2. 从零开始的SpringBoot项目 ( 五 ) 整合 Swagger 实现在线API文档的功能

    综合概述 spring-boot作为当前最为流行的Java web开发脚手架,越来越多的开发者选择用其来构建企业级的RESTFul API接口.这些接口不但会服务于传统的web端(b/s),也会服务于 ...

  3. mysql 安装卸载自动化脚本

    #!/bin/sh #mkdir /root/mysql #tar -xvf mysql-5.7.-.el7.x86_64.rpm-bundle.tar -C /root/mysql #cd /roo ...

  4. 阿里云体验实验室 教你《搭建Hadoop环境》

    体验平台简介 面向开发者和中小企业打造的一站式.全云端的开发平台,打开浏览器就可以开发.调试.上线,所测即所得,并结合无服务器的模式,重新定义云原生时代的研发工作方法论.旨在降低开发者上手成本和中小企 ...

  5. Currency Exchange(SPFA判负环)

    Several currency exchange points are working in our city. Let us suppose that each point specializes ...

  6. 万字长文,以代码的思想去详细讲解yolov3算法的实现原理和训练过程,Visdrone数据集实战训练

    以代码的思想去详细讲解yolov3算法的实现原理和训练过程,并教使用visdrone2019数据集和自己制作数据集两种方式去训练自己的pytorch搭建的yolov3模型,吐血整理万字长文,纯属干货 ...

  7. 百度网盘,实现免费不限速,10M/S?

    前段时间,各大消息都说百度网盘实现了免费和不限速的『提速模式』,可以达到10M/S,于是我带着好奇想要进行测试一下,探一探真假,毕竟只有自己动手实践才知道真理,结果,辜负众望,一向对用户限速还限制上传 ...

  8. FastJSON解析JSON的时候保证深堆的顺序

    普通的JSONObject.parseObject(),解析的时候,底层采用HashMap解析所以是无序的, JSONObject params = JSONObject.parseObject(ex ...

  9. STS 使用lombox.jar

    在Maven本地仓库中找到 将lombox.jar放在与STS.exe平级的目录下, 然后安装完了以后可能会出先打不开的情况.这个时候只要打开STS.ini文件. 然后修改文件保存

  10. ZK集群源码解读

    1.1. 集群模式 1.1.1.   数据同步总流程 1.1.1.1. OBSERVING 1.1.1.2. FOLLOWING 1.1.1.3. LEADING 1.1.2. 领导选举 1.1.2. ...