3. 预编译SQL语句
将上述的Statement替换成PreparedStatement(表示预编译的 SQL 语句的对象),使用此对象可以高效地多次执行SQL语句。
一般步骤:
3.1 通过java.sql.Connection实例,调用prepareStatement(String sql)方法,以参数化的SQL语句作为参数,创建PreparedStatement对象.
3.2 通过java.sql.PreparedStatement实例,调用setXXX()方法,设置对应的参数值.
3.3 通过java.sql.PreparedStatement实例,调用executeQuery(),executeUpdate()等方法,执行数据库查询,更新等操作.
java.sql.Connection类中成员方法:
PreparedStatement prepareStatement(String sql)
创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。
java.sql.PreparedStatement类中成员方法:
ResultSet executeQuery()
在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。
int executeUpdate()
在此 PreparedStatement 对象中执行 SQL 语句,该语句必须是一个 SQL INSERT、UPDATE 或 DELETE语句;或者是一个什么都不返回的 SQL 语句,比如 DDL 语句。
关键代码:
String username = "ye";
String password = "ye";
String sql = "select * from user where username = ? and password = ?;";
db.stmt = db.conn.prepareStatement(sql);
db.stmt.setString(1, username);
db.stmt.setString(2, password);
ResultSet rs = db.stmt.executeQuery();