MyBatis SQL语句操作Mysql
本文记录使用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) <= #{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 比较。注意的是 <= 是用 < 来表示的。否则会报下面错误:
tag name are expected
MyBatis SQL语句操作Mysql相关推荐
- shell脚本mysql_Shell脚本中执行sql语句操作MySQL数据库的几个方法
实验如下: [root@idb1 ~]# more /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m mysql> show va ...
- 在命令窗口使用sql语句操作Mysql数据库
目录 一.操作数据库 1.输入下面代码,按回车,接着输入登录数据库的密码 2.查看Mysql中所有数据库: 3.创建数据库: 4.删除数据库: 5.切换到某个数据库: 6.查询当前在那个数据库 二.操 ...
- mysql语句编码_使用SQL语句操作MYSQL字符编码
-- 查看所有的字符编码 SHOW CHARACTER SET; -- 查看创建数据库的指令并查看数据库使用的编码 show create database dbtest; -- 查看数据库编码: s ...
- MySQL数据库https接口_第三章 mysql 数据库接口程序以及SQL语句操作
mysql 数据库接口程序以及SQL语句操作 用于管理数据库: 命令接口自带命令 DDL:数据定义语言(create drop ) DCL: 数据控制语言(grant revoke) DML: 数据 ...
- django使用mysql原始语句,Django中使用mysql数据库并使用原生sql语句操作
Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件 mysql数据库,版本5. ...
- django mysql sql语句_Django中使用mysql数据库并使用原生sql语句操作
Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件 mysql数据库,版本5. ...
- SQL语句在Mysql中是如何被执行的?
前言 相信大家用了这么久的Mysql,一定很好奇自己写的SQL是如何执行并返回结果的,今天我们就来一层一层剥开Mysql这颗洋葱. 首先我们通过一张图来了解下整个过程,然后再开始一步一步解析. 第一步 ...
- mybatisplus执行sql语句_[MySQL]sql语句的执行流程
此篇极客时间专栏<MySQL实战45讲>笔记,文中部分图文来自该专栏. MySQL的执行流程示意图: 大体来说,MySQL可以分为Server层和存储引擎层两部分. Server层包括连接 ...
- 一条SQL语句在MySQL中是如何执行的
来源:http://t.cn/E6U9Z9T 概览 本篇文章会分析下一个sql语句在mysql中的执行流程,包括sql的查询在mysql内部会怎么流转,sql语句的更新是怎么完成的. 一.mysql架 ...
最新文章
- Bloom Filter 大规模数据处理利器
- HA总结:AWS 网络连接
- 【渝粤题库】陕西师范大学200301几何学作业(高起本)
- Linux在线扫描热添加的SCSI/iSCSI设备
- 微信小程序—day01
- Word2Vec学习笔记(一)
- grub配置文件丢失的解决方法
- 一个成型的awt所必须的frame组件
- 修复RAID-5和镜像磁盘
- 【转】curl 查看一个web站点的响应时间(rt)
- 北京林业大学matlab公选课,【抛砖引玉】一学期结束分享一下部分公选课和通识课经验...
- FlexSim仿真软件入门笔记:基本操作、快捷键
- 6-2 某半导体存储器容量为16Kx8位,可选RAM芯片容量为4Kx4/片。地址总线A15~A0(低),双向数据线D7~D0(低),由R/W线控制读/写。请设计并画出该存储器的逻辑图,注明地址分配..
- Schneider TM200CE40U 通讯与编程
- 现在移动端还用rem吗?nonono
- 【20211207】【雷达】毫米波雷达(一)—— 基本原理
- 单、双目相机标定及其校正相关函数整理
- 2021-2027全球与中国全闪存存储市场现状及未来发展趋势
- PLSQL Developer几个可能的隐患
- python os.path.splitext()的用法_Python中os.path用法分析