preparedstatement的setstring
时间: 2023-04-21 10:00:11 浏览: 776
PreparedStatement的setString是用来设置字符串类型参数的方法。它接受两个参数,第一个参数是要设置的参数的位置,第二个参数是要设置的字符串值。这个方法可以用来设置SQL语句中的占位符,从而防止SQL注入攻击。同时,它也可以提高SQL语句的执行效率,因为PreparedStatement会对SQL语句进行预编译,从而避免了每次执行SQL语句时都要重新编译的开销。
相关问题
preparedstatement.setstring
PreparedStatement 是 Java 的一个接口,通常用来执行预编译的 SQL 语句。其中 setString 方法用于将参数设置为给定的字符串值。使用方法如下:
```
PreparedStatement pstmt = conn.prepareStatement("UPDATE Employee SET salary = ? WHERE id = ?");
pstmt.setString(1, "5000");
pstmt.setInt(2, 1);
int rows = pstmt.executeUpdate();
```
其中 setString(1,"5000")是将第一个问号赋值为5000
在java中写入如下代码:public int insert(int Id, String PName, String AName,String ADynasty,String PCate,String PContent){ String xinde0 = "insert into awrite values(?,?,?,?)"; String xinde = xinde0 +"insert into poem values(?,?,?,?)"; int i = 0; try{ preparedStatement = connection.prepareStatement(xinde); preparedStatement.setInt(1,Id); preparedStatement.setString(2,PName); preparedStatement.setString(3,AName); preparedStatement.setString(4,ADynasty); preparedStatement.setInt(5,Id); preparedStatement.setString(6,PName); preparedStatement.setString(7,PCate); preparedStatement.setString(8,PContent); i=preparedStatement.executeUpdate(); }catch (SQLException e){ e.printStackTrace(); }finally { try { preparedStatement.close(); connection.close(); }catch (SQLException e){ e.printStackTrace(); } } return i; } 我这样写是为了将jsp文件中输入框获得的参数分开插入数据表awrite和数据表poem,即取得的Id,PName,AName,ADynasty数据插入数据表awrite,取得的Id,PName,PCate,PContent插入数据表,我这样写无效,返回的i值为0提示我没有成功,我应该如何修改代码
你的代码中有两个SQL语句,但是你只使用了一个PreparedStatement对象,这是不能正常工作的。
你可以尝试按照以下步骤修改代码:
1.分别创建两个PreparedStatement对象,一个用于向awrite表插入数据,一个用于向poem表插入数据。
2.在向poem表插入数据时,将第一个参数Id改为第四个参数ADynasty,因为poem表中第一个参数是ADynasty。
修改后的代码如下所示:
```
public int insert(int Id, String PName, String AName, String ADynasty, String PCate, String PContent) {
String awriteSql = "insert into awrite values(?,?,?,?)";
String poemSql = "insert into poem values(?,?,?,?)";
int i = 0;
try {
PreparedStatement awriteStatement = connection.prepareStatement(awriteSql);
awriteStatement.setInt(1, Id);
awriteStatement.setString(2, PName);
awriteStatement.setString(3, AName);
awriteStatement.setString(4, ADynasty);
awriteStatement.executeUpdate();
PreparedStatement poemStatement = connection.prepareStatement(poemSql);
poemStatement.setInt(1, Id);
poemStatement.setString(2, PName);
poemStatement.setString(3, PCate);
poemStatement.setString(4, PContent);
i = poemStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return i;
}
```
希望可以帮助你解决问题。