使用java jdbc方法查询数据库 ora sql 报错 无效的列类型 但是使用java 解析出来的sql 去数据库查执行成
publicList<Map<String,Object>>getClient(stringdbclass)throwsException{StringSql="sele...
public List<Map<String,Object>> getClient(string dbclass) throws Exception{
String Sql="select * from sys_changhis where dbclass=?";
Object args=new Object[]{dbclass};
List<Map<String,Object>> a=dbUtils.getJdbcTemplate().queryForList(Sql,args);
```````
}
就在List<Map<String,Object>> a=dbUtils.getJdbcTemplate().queryForList(Sql,args);处报错 PreparedStatementCallback; uncategorized SQLException for SQL [select LG_TNAME from SYS_CHANGHIS_SET where DB_CLASS=?]; SQL state [null]; error code [17004]; 无效的列类型; nested exception is java.sql.SQLException: 无效的列类型!!
自己找到原因了
Object args=new Object[]{dbclass};
应该是
Object args[]=new Object[]{dbclass}; 展开
String Sql="select * from sys_changhis where dbclass=?";
Object args=new Object[]{dbclass};
List<Map<String,Object>> a=dbUtils.getJdbcTemplate().queryForList(Sql,args);
```````
}
就在List<Map<String,Object>> a=dbUtils.getJdbcTemplate().queryForList(Sql,args);处报错 PreparedStatementCallback; uncategorized SQLException for SQL [select LG_TNAME from SYS_CHANGHIS_SET where DB_CLASS=?]; SQL state [null]; error code [17004]; 无效的列类型; nested exception is java.sql.SQLException: 无效的列类型!!
自己找到原因了
Object args=new Object[]{dbclass};
应该是
Object args[]=new Object[]{dbclass}; 展开
1个回答
展开全部
select LG_TNAME from SYS_CHANGHIS_SET where DB_CLASS=?];
这个SQL有问题 Object args=new Object[]{dbclass};这个变量需要正确声明
这个SQL有问题 Object args=new Object[]{dbclass};这个变量需要正确声明
更多追问追答
追问
还有哟个同样的问题 只是现在是插入语句
Object argschange[] = new Object[] { data.get(pkname), key,
EntityUtils.getOldValue(data, key), data.get(key),
new Date(), psnCode, '1', tableName };
jdbcUtils.getJdbcTemplate().update(excesql, argschange);
其中excesql 是一段插入语句 为 此语句在sql中能真确执行
追答
如果使用频繁,那是使用存贮过程更好一些。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询