PreparedStatement取出值为空

来源:百度知道 编辑:UC知道 时间:2024/04/27 14:32:28
我在类中用Statement操作 可以取出数据库的值,但用了PreparedStatement取出来的就全是空值
try{
conn=DBConnect.getConnection();
pstmt=conn.prepareStatement("select * from equip where eqid = ?");
pstmt.setString(1, eqid);
res=pstmt.executeQuery();
if(res.next()){
eq=new Equip(res.getString(1),res.getString(2),res.getString(3),res.getString(4),res.getString(5),res.getString(6),res.getString(7),res.getString(8),res.getString(9));}
我把那条SQL语句打印了下,还是select * from equip where eqid=?,pstmt.setString(1, eqid); 这句话没起到作用,怎么回事??
我把空格也去了,好像没用啊。
我用的是ORACLE9i
我用Statement时是可以取出数据的。
如果是驱动问题,那改怎么改????

可能和数据库有关系,mysql5以上才支持preparestatement!
另外驱动的版本低了也不行!
res.getString(1),res.getString(2),res.getString(3),res.getString(4),res.getString(5),res.getString(6),res.getString(7),res.getString(8),res.getString(9)
这个最好别这么写!

我把那条SQL语句打印了下,还是select * from equip where eqid=?
这个肯定是对的!string就是这个!

没有异常吗?
哪可能还是驱动的问题啊!

sql 语句等号那里是不是加了空格啊你?

ry{
conn=DBConnect.getConnection();
pstmt=conn.prepareStatement("select * from equip where eqid = ?");
pstmt.setString(1, eqid);
res=pstmt.executeQuery();
Equip eq = new Equip() ;
if(res.next()){
eq.setString("1",res.getId()) ;//我不知道你要查的是什么值我这里用
//getId代替了..你把Id换成你要得到
//值照着这个模子写完
eq.setString("2",res.getName()) ;
}

eqid是不是整形啊?那样就需要是pstmt.setInt(1, eqid);