大家帮我看看这段代码那里错误啊??关于PreparedStatement的!!

jspfans 2006-03-02 04:14:03
如题,谢谢!
public int execSELECT(String sql) throws SQLException
{
if (conn == null)
throw new SQLException ("连接还没有被建立!");
if (sql == null)
throw new SQLException ("SQL-statement是null!");
clearResult ();
/////创建可滚动的只读的数据集
pstmt = conn.createPreparedStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = pstmt.executeQuery (sql);
rsmd = rs.getMetaData();
numCols = rsmd.getColumnCount();
return numCols;
}
...全文
77 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
jspfans 2006-03-02
呵呵,找到原因了。应该是
pstmt = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

谢谢doway(john)!
回复
jspfans 2006-03-02
doway(john) 兄!

我改了之后试了一下,错误依旧啊!!
回复
jspfans 2006-03-02
但是我发现我的系统用'or''='就能登录,搜了一下,别人建议用PreparedStatement的^_^

我的sql是这样的

select * from table where a='"+a+"';

doway(john) 有用PreparedStatement的必要吗??
回复
doway 2006-03-02
Connection 没有什么 createPreparedStatement 方法,应该是 createStatement,如果使用 PreparedStatement,那么应该这样写:

pstmt = conn.preparedStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

对于楼主的代码,完全没必要使用 PreparedStatement,只有 sql 中含有参数时,才应该使用它,如下所示:

String sql = "SELECT * FROM jobs WHERE pkid = ?";
pstmt = conn.preparedStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
pstmt.setInt(1, pkid);
rs = pstmt.executeQuery ();

:)
回复
jspfans 2006-03-02
我晕!!
那个^在create的a下面
回复
jspfans 2006-03-02
怎么都乱了啊,错误提示在这里
pstmt = conn.createPreparedStatement
^

找不到符号
回复
jspfans 2006-03-02
E:\Editing\web\WEB-INF\classes\fileman\DataBase.java:211: 找不到符号
符号: 方法 createPreparedStatement(int,int)
位置: 接口 java.sql.Connection
pstmt = conn.createPreparedStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
^
原来是 stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

但是我发现我的系统用'or''='就能登录,搜了一下,别人建议用PreparedStatement,这个PreparedStatement怎么用啊,!!!和Statement不同吗??
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2006-03-02 04:14
社区公告
暂无公告