public static void main(String[] args) {
try {
Class.forName(driver);
Connection conn=DriverManager.getConnection(url,name,pwd);
//String sql="select * from usertabl e where u_pass=? and u_name=? ";
String sql="select * from username where name=? and pwd=?";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1,"sa");
ps.setString(2,"sa");
ResultSet rs=ps.executeQuery();
if(rs.next()){
System.out.println(rs.getString("name"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}}代码是没有问题的的,测试了很多测,就是用oracle数据调用ps.setString()方法替换占位符,值传不进去,
但是用sqlserver2000这句完全成功。 oracle的数据库驱动也换过,oracle也重装过,问题一直无法解决、
但是把前面的sql换成这样String sql="select * from username where name='sa' and pwd='sa'";是可以执行的
求解决到底是什么问题,。
try {
Class.forName(driver);
Connection conn=DriverManager.getConnection(url,name,pwd);
//String sql="select * from usertabl e where u_pass=? and u_name=? ";
String sql="select * from username where name=? and pwd=?";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1,"sa");
ps.setString(2,"sa");
ResultSet rs=ps.executeQuery();
if(rs.next()){
System.out.println(rs.getString("name"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}}代码是没有问题的的,测试了很多测,就是用oracle数据调用ps.setString()方法替换占位符,值传不进去,
但是用sqlserver2000这句完全成功。 oracle的数据库驱动也换过,oracle也重装过,问题一直无法解决、
但是把前面的sql换成这样String sql="select * from username where name='sa' and pwd='sa'";是可以执行的
求解决到底是什么问题,。
rs.setString(name,"sa")
这样多好,不用考虑占位符从0还是从1开始