2 cjq 371989 cjq_371989 于 2013.12.23 11:28 提问

JdbcTemplet中的queryForList(String sql,Object[],int[])如何进行模糊查询

这是代码:
Object[] params = new Object[]{searchValue};
int[] types = new int[]{Types.VARCHAR};
String sql = "SELECT * FROM T_BILL_INFORMATION tbi WHERE tbi.name like '%'+?+'%'";
getJdbcTemplet.queryForList(sql,params,types);
运行结果报错,说是无效数字这是怎么回事,求大神帮助,我数据库使用的是Oracle

2个回答

YangRuiHong
YangRuiHong   2013.12.23 16:34

你采用%拼接的方法是通不过编译的,你可以把条件参数值拼接上‘%’作为一个整体,例如sql ‘tbi.name like ? ’中占位符?的实参为‘%小明%’。

xhlim
xhlim   2015.09.21 15:37

String sql = "SELECT * FROM T_BILL_INFORMATION tbi WHERE tbi.name like '%' ? '%'";
?问号两边的空格不能少,

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Spring JdbcTemplate # queryForList(String sql , Class<T> elementType)
一直用ORM,今天用JdbcTemplate再次抑郁了一次。            首先看下这个方法:           乍一看,我想传个泛型T(实际代码执行中,这个T可以是我自定义的一个Bean),然后就能返回个List,也即泛型的集合(纯ORM思想啊!殊不知我又自己挖了个大坑~)           于是乎,出现下面代码: List list = jdbcTemp
JdbcTemplate.queryForList()方法各不同参数的详解
public <T> List<T> queryForList( String sql, Class<T> elementType, Object... args )throws DataAccessException 官方文档解释: Parameters: sql - SQL query to execute elementType - the required type
Spring-JDBC 操作SQL数据库
Spring-JDBC 操作SQL数据库1.关于org.springframework.jdbcJava操作关系数据库,例如MySQL,可以使用数据库对应的JDBC驱动程序(如:mysql-connector-java)提供的的方法。但由于JDBC驱动提供的API使用起来每次都要编写连接、操作、关闭数据库和异常处理的模板(Template)代码,代码显得非常冗长重复,不利于集中精力处理实际问题。or
jdbcTemplate.queryForList详解
StringBuffer sql = new StringBuffer(); sql.append("SELECT sd.labelName,pbd.levelThree from product p "); sql.append("LEFT JOIN product_belongs_directory pbd on pbd.productId = p.productId "); sql.a
SpringMVC jdbcTemplate中queryForObject以及queryForList返回映射实体使用
使用SpringMVC搭建项目时,我打算直接使用SpringMVC的JDBC,如果引入Mybatis和Hibernate等ORM是感觉太过的麻烦,所以直接使用springframework.jdbc。SpringMVCJDBC提供了两个数据jdbc操作类,分别是:jdbcTemplate和namedParameterJdbcTemplate。他们都提供了非常多的方法,我就不写了(看源码)。现在问题
ibatis常用方法
写一个类继承SqlMapClientDaoSupport,然后我们就可以用他的一些方法了:
关于Spring jdbcTemplate.queryForList(sql)结果迭代
String sql = "select v_username from t_user where v_userid=?";  public String getUserNameById(String v_uid) {        sql = sql.replaceAll("//?", ""+v_uid+"");                List list =
JdbcTemplate.queryForList(String sql)
Number One  DAO  public List getResourceTotalOfParentType() { return jdbcTemplate .queryForList("SELECT count(*) as c FROM resource GROUP BY parentTypeId"); } public String execute() thr
JdbcTemplate 版本4以上的queryforObject和queryforList的实现
书本和旧一点的网路资料都有提供queryforobject和queryforlist的方法,貌似都支持ORM的直接转换。但自己用maven配置的jdbctemplate 4.1.9,则不行,一直报IncorrectResultSetColumnCountException: Incorrect column count: expected 1,     actual...的错误,后来查资料发现
关于Linq to sql 实现 模糊查询 string数组
前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时 //比如是这样一个数组条件:new string[]{"兴业银行","广州银行","xx银行","abc"} 我们不想在查询数据后,再对其进行模糊过滤操作,可能因为个人习惯,也可能由于项目需要不急于将Linq 的查询 过早的提交到数据库,我们需要先构建完查询条件最后才ToL