本文记录使用Mybatis操作数据库时碰到的一些语句,供以后参考。

一,多条件查询

示意SQL语句:SELECT t_field1, t_field2 FROM table_name WHERE t_field3 (BETWEEN startTime AND endTime) AND t_field4 IN (xxx,xxx,xxx)

Mapper接口配置:

    public List<Chat> query(@Param("startTime") long startTime, @Param("endTime") long endTime, @Param("sids") List<Long> sidList);

Mapper.xml配置:

    <select id="query" resultMap="chat">SELECT uid,content from tableNameWHERE( UNIX_TIMESTAMP(data_time) >= #{startTime} ) AND ( UNIX_TIMESTAMP(data_time) &lt;= #{endTime} )AND sid IN<foreach collection="sids" item="item" index="index" open="(" separator="," close=")">#{item}</foreach></select>

resultMap 将数据库中的列名 与 JavaBean 属性名 对应,从而映射成Java对象。Chat则是一个拥有两个字段(uid 和 content)的 JavaBean类。

    <resultMap id="chat" type="Chat"><!-- Chat 是在mybatisConfig.xml中定义的别名(全限定包名在 mybatisConfig.xml中配置了)--><id property="id" column="id"/><result property="uid" column="uid"/><result property="content" column="content"/></resultMap>

解释:①Mapper接口中的方法名 与 Mapper.xml中的 <select id 一 一对应。

②Mapper接口 通过 @Param 实现多个参数传递。可参考:MyBatis简单使用和入门理解 中的“使用参数注解的形式传递多个参数”。@Param中指定的参数名称 与 select 查询语句中的 名称 一 一对应。比如:@param("startTime")  对应 #{startTime} 。  @param("endTime")  对应 #{endTime}  。

 @param("sids")  对应 foreach collection="sids"

③通过 foreach 语句,对 sid 字段 实现了 多条件匹配。相当于 sid IN {xxx1,xxx2,xxx3....}

④另外对于数据库中的String类型 data_time字段,首先转化成UNIX时间戳,然后与 startTime 及 endTime 比较。注意的是 <= 是用 &lt; 来表示的。否则会报下面错误:

tag name are expected

MyBatis SQL语句操作Mysql相关推荐

  1. shell脚本mysql_Shell脚本中执行sql语句操作MySQL数据库的几个方法

    实验如下: [root@idb1 ~]# more /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m mysql> show va ...

  2. 在命令窗口使用sql语句操作Mysql数据库

    目录 一.操作数据库 1.输入下面代码,按回车,接着输入登录数据库的密码 2.查看Mysql中所有数据库: 3.创建数据库: 4.删除数据库: 5.切换到某个数据库: 6.查询当前在那个数据库 二.操 ...

  3. mysql语句编码_使用SQL语句操作MYSQL字符编码

    -- 查看所有的字符编码 SHOW CHARACTER SET; -- 查看创建数据库的指令并查看数据库使用的编码 show create database dbtest; -- 查看数据库编码: s ...

  4. MySQL数据库https接口_第三章 mysql 数据库接口程序以及SQL语句操作

    mysql  数据库接口程序以及SQL语句操作 用于管理数据库: 命令接口自带命令 DDL:数据定义语言(create drop ) DCL: 数据控制语言(grant revoke) DML: 数据 ...

  5. django使用mysql原始语句,Django中使用mysql数据库并使用原生sql语句操作

    Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件 mysql数据库,版本5. ...

  6. django mysql sql语句_Django中使用mysql数据库并使用原生sql语句操作

    Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件 mysql数据库,版本5. ...

  7. SQL语句在Mysql中是如何被执行的?

    前言 相信大家用了这么久的Mysql,一定很好奇自己写的SQL是如何执行并返回结果的,今天我们就来一层一层剥开Mysql这颗洋葱. 首先我们通过一张图来了解下整个过程,然后再开始一步一步解析. 第一步 ...

  8. mybatisplus执行sql语句_[MySQL]sql语句的执行流程

    此篇极客时间专栏<MySQL实战45讲>笔记,文中部分图文来自该专栏. MySQL的执行流程示意图: 大体来说,MySQL可以分为Server层和存储引擎层两部分. Server层包括连接 ...

  9. 一条SQL语句在MySQL中是如何执行的

    来源:http://t.cn/E6U9Z9T 概览 本篇文章会分析下一个sql语句在mysql中的执行流程,包括sql的查询在mysql内部会怎么流转,sql语句的更新是怎么完成的. 一.mysql架 ...

最新文章

  1. Bloom Filter 大规模数据处理利器
  2. HA总结:AWS 网络连接
  3. 【渝粤题库】陕西师范大学200301几何学作业(高起本)
  4. Linux在线扫描热添加的SCSI/iSCSI设备
  5. 微信小程序—day01
  6. Word2Vec学习笔记(一)
  7. grub配置文件丢失的解决方法
  8. 一个成型的awt所必须的frame组件
  9. 修复RAID-5和镜像磁盘
  10. 【转】curl 查看一个web站点的响应时间(rt)
  11. 北京林业大学matlab公选课,【抛砖引玉】一学期结束分享一下部分公选课和通识课经验...
  12. FlexSim仿真软件入门笔记:基本操作、快捷键
  13. 6-2 某半导体存储器容量为16Kx8位,可选RAM芯片容量为4Kx4/片。地址总线A15~A0(低),双向数据线D7~D0(低),由R/W线控制读/写。请设计并画出该存储器的逻辑图,注明地址分配..
  14. Schneider TM200CE40U 通讯与编程
  15. 现在移动端还用rem吗?nonono
  16. 【20211207】【雷达】毫米波雷达(一)—— 基本原理
  17. 单、双目相机标定及其校正相关函数整理
  18. 2021-2027全球与中国全闪存存储市场现状及未来发展趋势
  19. PLSQL Developer几个可能的隐患
  20. python os.path.splitext()的用法_Python中os.path用法分析

热门文章

  1. 由一个园友因为上传漏洞导致网站被攻破而得到的教训
  2. 学习数据结构 二叉查找树(binary search tree)
  3. Linux学习笔记13:把网卡名字都修改成eth*
  4. zabbix学习笔记(5)
  5. 环形缓冲区: ringbuf.c
  6. 关于equals与hashcode的重写
  7. 《TensorFlow技术解析与实战》——导读
  8. Javascript中DOM技术的的简单学习
  9. Android实例-录音与回放(播放MP3)(XE8+小米2)
  10. windows如何卸载Oracle