在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提示我没有成功,我应该如何修改代码
时间: 2024-03-02 17:52:48 浏览: 61
Oracle在Mybatis中SQL语句的配置方法
你的代码中有两个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;
}
```
希望可以帮助你解决问题。
阅读全文