while(rs.next()){
int id = rs.getInt(1);
String name = rs.getString("name");
double balance = rs.getDouble(3);
System.out.println("id + "......" + name + "......" + balance");
}
PrepareStatement:执行(预编译)sql的对象
SQL注入问题:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题。 - 输入用户随便,输入密码:a’ or ‘a’ = 'a - sql:select * from user where username = ‘fhdsjkf’ and password = ‘a’ or ‘a’=‘a’
解决方法:使用PrepareStatement对象
预编译的SQL:参数使用?作为占位符
步骤: 1. 导入驱动jar包 2. 注册驱动 3. 获取连接 4. 定义sql 注意:sql的参数使用?作为占位符。 如:select * from user where username =? and password =? 5. 获取执行sql语句的对象PreparedStatement Connection.prepareStatement(String sql) 6. 给?赋值: setxxx(参数1,参数2) 参数1:?的位置编号,从1开始 参数2:?的值 7. 执行sql,接受返回结果,不需要传递sql语句 8. 处理结果 9. 释放资源