主页 > 网络编程 > MyBatis多条件查询

MyBatis多条件查询

在前面内容的基础上,我们在UserDao中编写一个方法

在UserMappper中编写

编写测试类,这个测试类的查询条件全部不为空

查看结果

我们设置部分条件是空的,例如用户角色为空

我们修改下测试部分的代码

运行测试代码我们发现

那么这个结果是否正确呢?我们查看日志信息

将查询语句摘取出来,里面的问号改成我们的查询数据,在数据库命令行中执行

发现是有数据的,很显然我们的代码有问题

这是因为在进行多条件查询的是否,用户并不一定会完整地输入所有的查询条件,这个时候就会有漏洞出现。

我们修改UserMappper.xml

我们再查看测试结果,符合我们的预想

我们改造上一个例子,在UserDao中添加如下方法

编写UserMapper.xml

编写测试方法

查看运行结果

发现有错误的信息,具体的错误信息是语句语法错误,其中

select * from s_user where and u.userRole=?

这句话很明显的错误。为了解决这个问题同样需要智能处理and和where。

再次查看运行结果

结果是对的 空指针的异常是因为我们没有查询role,同时也没做处理,我们做一下更改

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!