SSM框架中写sql在dao文件中以注解的方式
1以注解方式

//两个参数其中一个是对象需写,对象.属性
@Update("update delivery_address set consignee = #{address.consignee},country = #{address.country},city = #{address.city},address = #{address.address},phone_number = #{address.phoneNumber},telnumber = #{address.telNumber},zipcode = #{address.zipcode},update_time = UNIX_TIMESTAMP(NOW())*1000 where id = #{id}")
void update(@Param("address") Address address, @Param("id") Long id);
OrderProvider.class

另外一种写法
@Select("<script>" +
"SELECT COUNT(*) FROM excel_template " +
" where create_uid = ${sqlMap.create_uid} and is_delete = 0 " +
"<if test=\"sqlMap.end_time != null and sqlMap.end_time != '' \"> and UNIX_TIMESTAMP(create_date) ${sqlMap.end_time} </if>" +
"<if test=\"sqlMap.start_time != null and sqlMap.start_time != ''\"> and UNIX_TIMESTAMP(create_date) >= ${sqlMap.start_time} </if>" +
"<if test=\"sqlMap.keyword != null and sqlMap.keyword != ''\"> and (file_name like CONCAT('%',#{sqlMap.keyword},'%') )</if>" +
"</script>")
int countList(PageBean<ExcelTemplate> pageBean);
在上一篇中提到查询中in()语句用foreach查询
现在用另外一种方式自定义注解方式
public List<TaskChildFinished> findListByIds(String ids) {
List<Long> idList = StringUtils.stringToLongList(ids);
List<TaskChildFinished> taskChildFinisheds = endProductDao.findListByIds(idList);
return this.format(taskChildFinisheds);
}
public static List<Long> stringToLongList(String string){
return Arrays.asList(string.split(",")).stream().map(s -> Long.parseLong(s.trim())).collect(Collectors.toList());
}
@Select("select * from task_child_finished where id in (#{idList})")
@Lang(SimpleSelectInLangDriver.class)
List<TaskChildFinished> findListByIds(@Param("idList")List<Long> ids);
public class SimpleSelectInLangDriver extends XMLLanguageDriver implements LanguageDriver {
private static final Pattern inPattern = Pattern.compile("\\(#\\{(\\w+)\\}\\)");
@Override
public SqlSource createSqlSource(Configuration configuration, String script, Class<?> parameterType) {
Matcher matcher = inPattern.matcher(script);
if (matcher.find()) {
script = matcher.replaceAll("<foreach collection=\"$1\" item=\"_item\" open=\"(\" "
+ "separator=\",\" close=\")\" >#{_item}</foreach>");
}
script = "<script>" + script + "</script>";
return super.createSqlSource(configuration, script, parameterType);
}
}
SSM框架中写sql在dao文件中以注解的方式的更多相关文章
- SSM框架中写sql在xml文件中
第一种(用Mapper.xml映射文件中定义了操作数据库sql) 注意点: 1.#{}与${} #{}表示一个占位符,使用占位符可以防止sql注入, ${}通过${}可以将parameterType传 ...
- 在mybatis中写sql语句的一些体会
本文会使用一个案例,就mybatis的一些基础语法进行讲解.案例中使用到的数据库表和对象如下: article表:这个表存放的是文章的基础信息 -- ------------------------- ...
- Excel VBA中写SQL,这些问题的方法你一定要牢记
小爬之前的文章 [Excel VBA中写SQL,这些问题你一定为此头痛过]中详细讲诉了一些常见的VBA 中使用SQL遇到的问题,这里再补充两个常见的问题场景及对应的解决方案,希望你们看了后能够思路开阔 ...
- C#程序中:如何删除xml文件中的节点、元素。
C#中动态的清理xml文件中的垃圾信息是程序员必会的哦.这就像数据库一样,不会清理数据怎么可以呢?其实xml文件就可以用作一个小的数据库,存储一些简单的信息.所以,用C#程序实现xml文件的增.删.改 ...
- C# 将List中的数据导入csv文件中
//http://www.cnblogs.com/mingmingruyuedlut/archive/2013/01/20/2849906.html C# 将List中的数据导入csv文件中 将数 ...
- Linux shell 中提取zip或jar文件中的某个文件
Linux shell 中提取zip或jar文件中的某个文件 假如有个压缩包 abc.jar, 里面文件如下 (可以用unzip -l abc.jar 查看): data/1.txt data/2.t ...
- CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储
CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...
- (转)MyBatis框架的学习(四)——Mapper.xml文件中的输入和输出映射以及动态sql
http://blog.csdn.net/yerenyuan_pku/article/details/71893689 前面对MyBatis框架的学习中,我们对Mapper.xml映射文件多少有些了解 ...
- Zoey.Dapper--Dapper扩展之把SQL语句放到文件中
介绍 不知道大家在用Dapper的时候SQL语句是写到哪的,目前看网上的例子都是写到类里面的. 此项目的目的是把SQL语句放到文件(xml)中 目前只是初步版本,只是说明了意图,后面会持续完善和优化 ...
随机推荐
- C语言函数-socket
int sock = socket(AF_INET, SOCK_STREAM, 0) //建立一个流式套接字,stream是流的意思,Tcp连接,提供序列化的.可靠的.双向连接的字节流.支持带外数据传 ...
- [BJOI2019]奥术神杖
https://www.luogu.org/problemnew/show/P5319 题解 首先观察我们要求的答案的形式: \[ \biggl(\prod V_i \biggr)^x\ \ \ x= ...
- sharding-jdbc学习
sharding-jdbc的全局id生成策略是通过雪花算法来实现的. sharding-jdbc也是一个数据的中间件,可实现读写分离和分库分表,比mycat要简单些. nginx与ribbon实现负载 ...
- 使用graphviz画图
安装: 要使用Graphviz,先要在系统上安装Graphviz. 在Ubuntu上安装可以使用命令: sudo apt-get install graphviz 在其他系统安装的方法可以查看Grap ...
- 二、docker的安装和基本命令
一.docker的安装 1.安装依赖 # yum install -y yum-utils device-mapper-persistent-data 2.设置yum源 # yum-config-ma ...
- Linux中errno的含义
/****************************获取错误代码描述**************/ #include <string.h>#include <errno.h&g ...
- IScroll5不能滑到最底端的解决办法
IScroll总体上用起来比较简单,但是如果用不好的可能会产生底部一点滚动不上去的问题. 环境:weui+iscroll5 整体布局及id如下 searchbarwrapper divscroll ...
- .NET尝试访问某方法失败
今天发现了一个错误: xxxx.xxxx尝试访问xxxx.xxxx方法失败. 调试无果,经过分析后得到这是.NET引用的问题.果然有了这个方向后,发现了引用不匹配的问题,问题随之解决. 记录一下.
- Python中所有的关键字
在python中若想查询python中有哪些关键字可以先导入keyword模块 import keyword #导入关键字模块print(keyword.kwlist) #查询所有关键字 查询结果: ...
- word20170107当地交通 Local transportation有用的词和句子
有用的词: transportation: 交通 airport express: 机场快线 shuttle bus: 班车 taxi/cab: 出租车 meter: 打表 limousine:专车. ...