当往下面的方法传递参数时,传入了java.util.Date类型,因此报错
“无效的列类型”,需要把java.util.Date转换为java.sql.Date
query("select distinct bm.n_bh BH,bm.c_mc MC,bm.n_zgbmbh PARENT,bm.n_zgjcybh,bm.n_xssx from v_ywzc_wsjcjg v,t_zzjg_bm bm where v.cbbm=bm.n_bh and v.cbdw=? and v.jarq BETWEEN ? AND ? order by bm.n_xssx",new Object[]{new Long(dwbh),date1,date2});
public List query(final String sql,final Object[] params){
return (List)getJdbcTemplate().execute(sql, new PreparedStatementCallback(){
public Object doInPreparedStatement(PreparedStatement pst) throws SQLException{
if(log.isDebugEnabled()){
log.debug(sql);
}
//pst.execute(sql);
if(params!=null && params.length>0){
for(int i=1;i<=params.length;i++){
pst.setObject(i,params[i-1]);
}
}
ResultSet rs = pst.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int colCount = rsmd.getColumnCount();
List l = new ArrayList();
while(rs.next()){
Map m = new HashMap();
for(int i=1;i<=colCount;i++){
m.put(rsmd.getColumnName(i),rs.getObject(i));
}
l.add(m);
}
return l;
}
});
}
==========原因============================================
Class oracle.jdbc.driver.OraclePreparedStatement
setObject(int paramIndex,Object x) throws SQLException
Sets the value of the designated parameter with the given object. This method is like setObject above, except that it finds out the SQL type base on the given object's type.
Parameters:
parameterIndex - the first parameter is 1, the second is 2, ...
x - the object containing the input parameter value
targetSqlType - the SQL type (as defined in
java.sql.Types) to be sent to the database
Throws: SQLException
if a database access error occurs
分享到:
相关推荐
JDBC基础教程之PreparedStatement.doc )
关于PreparedStatement插入Date类型值的方法.txt
preparedStatement.setInt (1, id); ResultSet resultSet = preparedStatement.executeQuery (); if (resultSet.next ()) { User users = new User ( resultSet.getInt (1), resultSet.getString (2), ...
pstmt.setObject(1, id); pstmt.setObject(2, name); pstmt.setObject(3, classname); pstmt.setObject(4, sex); pstmt.setObject(5, age); pstmt.execute(); }catch(Exception e){ ...
pstmt.setObject(i+1, param[i]); } num = pstmt.executeUpdate(); } catch (SQLException ex) { throw new Exception("错误提示:请检查SQL语法是否有误"); //throw ex ; } finally{ close(connect,pstmt...
this.preparedStatement.setInt(1, s.getSupplierId()); this.preparedStatement.setString(2, s.getSupplierName()); this.preparedStatement.setString(3, s.getSupplierAddress()); this.preparedStatement....
尚硅谷著名教师佟刚老师基于面对对象编程思想,对preparedStatement类一系列操作的案例。
1、如何将java.util.Date...2、如果要插入到数据库并且相应的字段为Date类型那么可以用PreparedStatement.setDate(int ,java.sql.Date)方法其中的java.sql.Date可以用上面的方法得到也可以用数据库提供TO_DATE函数
ps.setInt(1, examVo.getClassExam()[i]); ps.setInt(2, examVo.getSid()[i]); ps.setInt(3, examVo.getC_id()); ps.executeUpdate(); } } catch (SQLException e) { e.printStackTrace(); ...
此实例意在解决预处理命令PreparedStatement的setString()方法,在sql2008数据库中写入数据时,会自动补足空格的问题, 同时此实例也解决了当存在自动补足空格的问题时,使用nvarchar可以使查找出来的数据与原输入...
pstmt.setInt(1, id); pstmt.executeUpdate(); } public Contact getContactById(int id) throws Exception{ String sql = "select * from Contact where id=?"; Connection con = DBConnection....
for (int i = startRow; i ; i++) {// 循环行 // ;i的范围是xls坐标中的数字(A‘1’,C‘10’) HSSFRow row = sheet.getRow(i); if (row == null) continue; HashMap, String> dataMap = null; if (row !=...
pst.setInt(5, user.getGender()); //返回影响的行数 ret_val =pst.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); }finally { this.closeAll(conn, pst); } return ret_val;...
pstmt_item.setInt(5, orderItems.getBookNum()); pstmt_item.addBatch(); } pstmt_item.executeBatch(); dbUtil.getCon().commit(); } catch (SQLException e) { e.printStackTrace(); ...
pst.setInt(7,ticket.getCarriageNum()); pst.setInt(8,ticket.getSeatNum()); pst.setString(9,ticket.getType()); pst.setString(10,ticket.getGrade()); pst.setInt(11,ticket.getUserId()); pst.setString...
MySql练习3:使用PreparedStatement插入宠物信息.zip MySql练习3:使用PreparedStatement插入宠物信息.zip MySql练习3:使用PreparedStatement插入宠物信息.zip
所有业务逻辑类皆可调用该类 ... import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.sql.Connection;... ps.setObject(i+1, param.get(i)); } } } }
pstmt.setObject(i+1, args[i]); } } rs = pstmt.executeQuery(); while(rs.next()){ User user = new User(); user.setUserno(rs.getInt("USERNO")); user.setUsername(rs.getString...
练习3:使用PreparedStatement插入宠物信息.zip
pstm.setObject(i+1,params[i]); } pstm.execute(); }catch(SQLException e){ System.out.println("doPstm()方法出错!"); e.printStackTrace(); } } } } /** ...