Java 准备好的声明中的例外情况
下面是代码Java 准备好的声明中的例外情况,java,sql,jdbc,prepared-statement,Java,Sql,Jdbc,Prepared Statement,下面是代码 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn = DriverManager.getConnection("jdbc:odbc:cse"); //Statement stmt; ResultSet rset; //stmt = conn.createStatement(); String sql = " Select * from registration wher
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:cse");
//Statement stmt;
ResultSet rset;
//stmt = conn.createStatement();
String sql = " Select * from registration where id=?";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, "101");
rset = pst.executeQuery(sql);
while (rset.next()) {
arr.add(rset.getInt("id"));
arr.add(rset.getString("first"));
arr.add(rset.getString("last"));
arr.add(rset.getInt("age"));
}
System.out.println(arr);
pst.close();
conn.close();
对于上面的示例,我得到“错误:java.sql.SQLException:驱动程序不支持此函数”。可能是什么问题?您误用了
PreparedStatement
接口。使用PreparedStatement
s时,您应该准备语句和查询,绑定所有必要的参数,然后在不使用任何SQL的情况下执行它-这将导致语句执行先前准备的SQL语句:
String sql = "Select * from registration where id=?";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, "101");
rset = pst.executeQuery(); // Note - No args in the executeQuery call
您误用了
PreparedStatement
界面。使用PreparedStatement
s时,您应该准备语句和查询,绑定所有必要的参数,然后在不使用任何SQL的情况下执行它-这将导致语句执行先前准备的SQL语句:
String sql = "Select * from registration where id=?";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, "101");
rset = pst.executeQuery(); // Note - No args in the executeQuery call
Exception
指向哪一行?您是否尝试过pst.executeQuery()
?不需要传递SQL字符串。并非所有数据库都支持问号,这后面是什么db?这Exception
指向哪一行?您是否尝试过pst.executeQuery()
?不需要传递SQL字符串。并非所有数据库都支持问号,这背后是什么数据库?