preparedstatement.setstring
时间: 2023-04-29 19:04:59 浏览: 218
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
相关问题
使用preparedStatement.setString(1, vlaue);结果进入的值是:** NOT SPECIFIED **
如果在使用 `preparedStatement.setString(1, value)` 的时候,实际插入到数据库中的值是 "** NOT SPECIFIED **",可能是由于在创建 PreparedStatement 对象的时候,SQL 语句中的参数占位符没有正确地设置。
请确认 SQL 语句中的占位符和 `setString` 方法的参数位置对应正确。例如,如果 SQL 语句中的第一个参数应该是字符串类型,则应该使用 `setString` 方法设置第一个参数的值,而不是使用 `setInt` 或其他类型的方法。
另外,如果插入的数据中有 NULL 值,需要使用 `setNull` 方法设置参数的值,而不是使用 `setString` 等方法。例如,使用 `preparedStatement.setNull(1, Types.VARCHAR)` 来设置第一个参数为 NULL 值。
在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;
}
```
希望可以帮助你解决问题。