JDBC之创建PreparedStatement
创建PreparedStatement
通过调用 Connection 对象的 preparedStatement() 方法获取 PreparedStatement 对象;PreparedStatement 接口是 Statement 的子接口,它表示一条预编译过的 SQL 语句。
Java代码:
String sql = "update user set name=? where id=?";
PreparedStatement statement = connection.prepareStatement(sql);
动态传参
PreparedStatement 对象所代表的 SQL 语句中的参数用问号(?)来表示;调用 PreparedStatement 对象的 setXxx() 方法来设置这些参数;setXxx() 方法有两个参数,第一个参数是要设置的 SQL 语句中的参数的索引(从 1 开始),第二个是设置的 SQL 语句中的参数的值;其中Xxx指的是数据类型。
String sql = "update user set name=? where id=?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, "jackma");
statement.setLong(2, 1);
PreparedStatement vs Statement
PreparedStatement可以防止SQL注入攻击;并且PreparedStatement会对SQL语句进行预编译,再次执行相同的语句不需要再次进行编译,可以提高执行效率。
通过PreparedStatement执行sql语句
//获取数据库连接
Connection connection = JDBCTools.getConnection();
//创建preparedStatement
String sql = "update user set name=? where id=?";
PreparedStatement statement = connection.prepareStatement(sql);
//填充占位符参数
statement.setString(1, "jackma");
statement.setLong(2, 1);
//执行更新语句
int affectedRows = statement.executeUpdate();