使用mybatis执行sql时如何统一校验输入参数? -凯发k8国际

0 0

使用mybatis执行sql时如何统一校验输入参数?0

如dao方法有:
void batchinsert(list userlist);
list getusersbyids(list idlist);
void deleteusersbyids(list idlist);

我想若输入参数为空(list.isempty()),就不要往下执行sql了,直接返回.否则的话会有错误sql出现,如:
mysql> select * from user where id in () ;
error 1064 (42000): you have an error in your sql syntax; check the manual that corresponds to your mysql server version for the right syntax to use near ')' at line 1

跟踪源码发现,可以在sqlsesisontemplate(org.mybatis.spring.sqlsesisontemplate)中进行处理,如selectlist,可以添加如下的逻辑:
if(parameter instanceof list){
  if(((list) parameter).isempty()){
list result =  new arraylist<>();
return result;
  }
  }

但是需要在其他方法中(如insert update delete) 都需要加入差不多的逻辑.
不知除了这一处理方式外,还有没其他更好的方法?
2015年1月18日 22:10

6个答案

0 0

采纳的答案

方法1、创建自定义注解,然后再写一个mybatis拦截器,拦截 查询相关方法,如果发现 输入参数有自定义注解,并且参数为null,则直接返回空

方法2、在service层 对参数做判断,如果参数为空,直接返回,不需要调用dao层查询

2015年1月20日 15:43
1 0

isnull和isempty标签

2015年1月19日 10:02
0 0

你的sql语句加上标签试试,要确保in 后面不为null

2016年11月29日 10:24
0 0

1 在service层判断参数list是否是null或者长度为0,这样就不调用dao层了
2 sql的写法

2015年10月08日 11:49
0 0

where后面的条件 可以加一个 1=1;
例如
select * from table_a where 1=1

    and id in () ;

2015年9月18日 17:20
0 0

切面编程(aop)应该可以解决这个问题,题主试试

2015年9月16日 15:00

相关推荐

    主要介绍了使用xsd校验mybatis的sqlmapper配置文件的方法(2)的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下

    以前面对sqlsessionfactorybean的重构为基础,简单的介绍了相关操作知识,然后在给大家分享使用xsd校验mybatis的sqlmapper配置文件的方法,感兴趣的朋友参考下吧

    这是一个spring-springmvc-mybatis-maven-mysql架构的java项目,主要实现登录校验功能。登录页面输入用户名和密码,点击登录按钮,查询数据库校验输入的内容,校验成功进入用户显示页面,将用户写入session,不成功...

    mybatis未进行二次封装,原滋原味,简单sql采用注解,复杂sql采用mapper.xml配置 使用了layui的弹出层、菜单、文件上传、富文本编辑、日历、选项卡、数据表格等 表单数据采用bootstrapvalidator校验,简单快捷方便...

    项目maven构建,真实大型互联网架构,做到高并发,大数据处理,整个项目使用定制化服务思想,提供模块化、服务化、原子化的方案,将功能模块进行拆分,可以公用到所有的项目中。架构采用分布式部署架构,所有模块...

    需要创建一个名为information_system的数据库,然后执行information_system.sql文件即可 tips:因为涉及六张表,这里不再罗列表结构,可以在sql文件中看到。 ## 项目备注 1、该资源内项目代码都经过测试运行成功,...

    高效率开发,使用代码生成器可以一键生成前后端代码 单元测试 swagger 接口文档 validator 参数校验 集成微信小程序、微信公众号、企业微信、钉钉等三方登陆,集成支付宝、微信等支付与退款 集成阿里云、腾讯...

    特征,提供 最佳实践的项目结构、配置文件、精简的pom 统一响应结果封装 统一异常处理 统一接口登录认证 常用基础方法抽象封装 controller、service、dao层基类抽取。...加入参数校验统一处理

    《谷粒商城》2020基础篇sql及数据库设计文件。项目采用springcloudalibaba技术栈。由业务集群系统 后台管理系统构成,打通了微服务分布式开发及全栈开发技能,包含前后分离全栈开发、restful接口、数据校验、网关、...

    1、spring、springmvc、mybatis整合项目,使用idea开发,tomcat服务器,mysql数据库。 2、使用interpreter实现登录校验功能,不登录者不能访问相关页面。 3、具备管理员(admin)对图书的增删改查功能和普通用户的...

    可以随意由接口层跳转到xml的sql语句,拥有xml语法校验

    使用监视器,得益于 mybatis 强大的动态 sql 功能,实现高性能动态搜索功能 使用 router 配置路由,实现不同用户类型导航栏的动态渲染 使用 axios 异步加载后端数据 使用 element ui 实现表单的前端校验功能 使用 ...

    【资源说明】 1、基于springboot mybatis的学生信息查看与...需要创建一个名为information_system的数据库,然后执行information_system.sql文件即可 tips:因为涉及六张表,这里不再罗列表结构,可以在sql文件中看到。

    hibernate validator(参数校验) mybatis(最少配置方案) shiro权限控制,结合ajax实现了异步认证与异步授权,同时实现了细粒度的权限动态分配(到按钮级别);添加了shiro session过期的登录跳转 jquery ...

    hibernate validate(参数校验) mybatis(最少配置方案) quartz时间调度 统一的异常处理 redis缓存(protostuff序列化) redis sentinel主从高可用方案 redis cluster集群高可用方案 druid(数据源配置 sql防注入 ...

    * [ssm开发 | 对 springmvc 传入参数 进行参数校验 (使用自定义aop切面 自定义参数注解)][10] 功能: - [x] 凯发k8国际首页、分类页、搜索页、产品页 - [x] 购物车页面、下单页、支付页及支付成功页 - [x] 我的...

    ├── sql-- 数据库脚本 └── web-api-- web控制层 技术选型 后端技术: 技术 名称 凯发k8国际娱乐官网入口官网 spring framework 容器 springboot springboot框架 mybatis orm框架 pagehelper mybatis物理分页插件 druid 数据库连接池...

    通过拦截器实现了方法级粒度的鉴权,通过aop实现了参数校验。 演示: 可自行注册账号,或使用后台查看权限账号 demo 密码 demo (后台入口登陆后显示) 兄弟项目: 本项目的亮点: 功能齐全,页面丰富,实现了小商城...

global site tag (gtag.js) - google analytics
网站地图