博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis中的${}和#{}
阅读量:4091 次
发布时间:2019-05-25

本文共 2572 字,大约阅读时间需要 8 分钟。

#{}:其作用相当于占位符,MyBatis会将里面的参数解析成一个字符串,比如,select * from table where name = #{name},当传入的name为小李,则执行的SQL为select * from table where name = '小李'。预编译,和JDBC的prepareStatement一样,无法进行SQL注入。

${}:其作用是直接拼接参数的值到SQL语句中,而不对其加上单引号,比如,order by ${argu},当传入的argu为age时,执行的SQL为order by age。

 

${}、#{}的使用举例:

示例一:获取用户在一段时间内某种设备的登录时间

后端Controller

@RequestMapping(value = "/getStatisticsData", method = RequestMethod.GET, produces = "application/json;charset=utf8")public List
getStatisticsData(Long startTime, Long endTime, String argu) { List
result = mapper.getSum(getTableName(), startTime, endTime, argu); return result;}

Mapper接口:

List
getSum(@Param("table") String table, @Param("start") String startTime, @Param("end") String endTime, @Param("tpType") String argu);

Mapper.xml:

tpType可以是使用移动设备(平板/手机)登录的时间,也可以是使用电脑登录的时间

 

示例二:获取用户一段时间内每天(可能有几条数据)使用某种设备的登录时间

注意:如果某个分组不只一条数据,即时不使用avg等函数,得到的各个分组中依然只有一条数据,并且其字段是该分组所有数据中的一条的值。

 

示例三:带有过滤条件的查询

 
= #{start} ]]>
order by `time` asc limit #{start}, #{count}

 

示例四:单条插入&批量插入

单条插入

insert into ${table}( username, `time`, line90, line95, line99 ) values( #{data.username}, #{data.time}, #{data.line90}, #{data.line95}, #{data.line99} )

批量插入

insert into ${table}( username, `time`, line90, line95, line99 ) values
( #{data.username}, #{data.time}, #{data.line90}, #{data.line95}, #{data.line99} )

 

示例五:单条删除&批量删除

单条删除

delete from ${table} where id=#{id}

批量删除

delete from ${table} where id in
#{id}

 

 

 

 

 

 

 

 

 

转载地址:http://zfnii.baihongyu.com/

你可能感兴趣的文章
DirectX11 光照演示示例Demo
查看>>
漫谈一下前端的可视化技术
查看>>
VUe+webpack构建单页router应用(一)
查看>>
Vue+webpack构建单页router应用(二)
查看>>
从头开始讲Node.js——异步与事件驱动
查看>>
Node.js-模块和包
查看>>
Node.js核心模块
查看>>
express的应用
查看>>
NodeJS开发指南——mongoDB、Session
查看>>
Express: Can’t set headers after they are sent.
查看>>
2017年,这一次我们不聊技术
查看>>
实现接口创建线程
查看>>
Java对象序列化与反序列化(1)
查看>>
HTML5的表单验证实例
查看>>
JavaScript入门笔记:全选功能的实现
查看>>
程序设计方法概述:从面相对象到面向功能到面向对象
查看>>
数据库事务
查看>>
JavaScript基础1:JavaScript 错误 - Throw、Try 和 Catch
查看>>
SQL基础总结——20150730
查看>>
SQL join
查看>>