Spring-JDBC:在使用JdbcTemplate进行条件查询时没有返回数据,但是sql直接在数据库中执行是有数据返回的。
来源:互联网 发布:知产的巴黎公约 编辑:程序博客网 时间:2024/05/21 17:45
在使用JdbcTemplate进行条件查询时没有返回数据,但是sql直接在数据库中执行是有数据返回的。
对应sql:SELECT count(1) FROM emp WHERE 1=1 and job like ? and deptno=?
对应参数数组:[%销售员%, 30]
对应sql:SELECT * FROM emp WHERE 1=1 and job like ? and deptno=? limit ?,?
对应参数数组:[%销售员%, 30, 0, 10]
结果:{"data":[],"result":"success","total_count":0} 说明程序没有报错,但是data为空。
部分代码:
@Override
public PageBean<Employee> page(Integer pageCode, Integer preCounts, Employee employee) throws Exception {
StringBuffer countPrefixSql = new StringBuffer("SELECT count(1) FROM emp ");
StringBuffer dataPrefixSql = new StringBuffer("SELECT * FROM emp ");
StringBuffer whereSql = new StringBuffer("WHERE 1=1 ");
List<Object> paramsValue = new ArrayList<>();
String job = employee.getJob();
if(null != job && !job.trim().isEmpty()) {
whereSql.append("and job like ? ");
paramsValue.add("%"+job+"%");
}
Integer deptNo = employee.getDeptno();
if(null != deptNo) {
whereSql.append("and deptno=? ");
paramsValue.add(deptNo);
}
String countSql = countPrefixSql.append(whereSql).toString();
Object[] args = paramsValue.toArray(new Object[paramsValue.size()]);
System.out.println(countSql);
System.out.println(Arrays.toString(args));
Integer count = jdbcTemplate.queryForObject(countSql, args, Integer.class);
dataPrefixSql.append(whereSql).append("limit ?,?");
paramsValue.add((pageCode - 1)*preCounts);
paramsValue.add(preCounts);
PageBean<Employee> pageBean = new PageBean<>();
System.out.println(Arrays.toString(paramsValue.toArray()));
System.out.println(dataPrefixSql.toString());
List<Employee> dataList = jdbcTemplate.query(dataPrefixSql.toString(),
new BeanPropertyRowMapper<>(Employee.class), paramsValue.toArray());
pageBean.setTotalCounts(count);
pageBean.setDataList(dataList);
pageBean.setPageCode(pageCode);
pageBean.setPreCounts(preCounts);
return pageBean;
}
问题:jdbcTemplate在执行条件查询有什么需要注意的地方?
- Spring-JDBC:在使用JdbcTemplate进行条件查询时没有返回数据,但是sql直接在数据库中执行是有数据返回的。
- mybatis查询返回空,SQL数据库执行有数据!
- mybatis 在dao层插入数据, 返回了影响的行数, 但是数据库里面有看到数据
- Hibernate的hql语句查询不到内容,但是库里有数据,直接执行SQL也能执行,能得到值,返回值取不到
- Android 浏览器直接请求链接有返回数据,但在程序中请求无返回。
- 当查询没有数据返回时返回一行默认值sql
- 在SQL中直接使用存储过程查询返回的结果集
- 使用jsonp有数据返回,但是success不执行的解决办法
- 使用jsonp有数据返回,但是success不执行的解决办法
- Spring JDBC学习笔记(1):查询数据库数据之JdbcTemplate的使用
- 关于如何在sql数据库里查询多次返回数据的做法
- spring JdbcTemplate下访问Oracle数据库插入数据时返回序列增长的主键
- SQL Server自定义函数进行模糊查询返回表类型没有数据的问题
- sql语句如何在insert一条数据后直接返回刚刚插入的数据的ID
- sql语句如何在insert一条数据后直接返回刚刚插入的数据的ID
- SQL查询返回数据多列,保存在list中时,怎么取值
- 在使用mybatis时遇到查询结果返回为空的情况,但是查数据库能查到
- 在使用mybatis时遇到查询结果返回为空(NULL)的情况,但是查数据库能查到
- lapack def文件的建立
- 浏览器F12下面怎么玩
- MPI集群环境搭建
- 【Web前端学习笔记】AJAX_原生AJAX,JQuery下的AJAX,跨域
- 算法日志(2)-【小明的喷漆计划与小明的礼物】动态规划
- Spring-JDBC:在使用JdbcTemplate进行条件查询时没有返回数据,但是sql直接在数据库中执行是有数据返回的。
- Ubuntu 安装Redis的步骤
- Leetcode 392 Is Subsequence
- DNS
- 5 technology trends to watch in 2015
- ssm-商城项目搭建
- 二叉搜索树(binary search tree)
- VMware NAT设置
- 第三章、Linux根文件系统及文件管理命令详解