Connection conn = JDBCUtils.getConnections();
String sql="select id,name,email,birth from customers where id=?";
PreparedStatement ps = conn.prepareStatement( sql,2);
ResultSet resultSet = ps.executeQuery();
if(resultSet.next()){
int id = resultSet.getInt(1);
String name = resultSet.getString(2);
String email = resultSet.getString(3);
Date birth = resultSet.getDate(4);
Customer customer = new Customer(id, name, email,birth );
System.out.println(customer);
}
尝试下面这段代码:
Connection conn = JDBCUtils.getConnections();
String sql="select id,name,email,birth from customers where id=?";
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
int id = 2;
ps.setInt(1,id );
ResultSet resultSet = ps.executeQuery();
if(resultSet.next()){
int id = resultSet.getInt(1);
String name = resultSet.getString(2);
String email = resultSet.getString(3);
Date birth = resultSet.getDate(4);
Customer customer = new Customer(id, name, email,birth );
System.out.println(customer);
}
} catch (SQLException e) {
e.printStackTrace();
}
因为你的SQL有一个占位符select id,name,email,birth from customers where id=?
,也就是那个?,你必须将?的值设置为实际的值,这样才是一个正确的SQL。