我尝试了一切,但它没有用。我尝试使用Datasource将记录插入服务器上的数据库,但是它不适用于SELECT语句,但不适用于INSERT语句。除了这段代码,还有什么需要做的吗?
准备好的声明
insertCampusian = connection.prepareStatement("INSERT INTO CAMPUSIAN ( CAMPUSIAN_USER_NAME, CAMPUSIAN_FIRST_NAME, "
+ "CAMPUSIAN_LAST_NAME, CAMPUSIAN_PASSWORD, CAMPUSIAN_PHONE_NO, CAMPUSIAN_EMAIL, CAMPUSIAN_MARITAL_STATUS, "
+ "CAMPUSIAN_SEX ) VALUES( ?, ?, ?, ?, ?, ?, ?, ? )");
用于插入
public boolean register(Campusian campusian) {
try {
insertCampusian.setString(1, campusian.getUserName());
insertCampusian.setString(2, campusian.getFirstName());
insertCampusian.setString(3, campusian.getLastName());
insertCampusian.setString(4, campusian.getPassword());
insertCampusian.setString(5, campusian.getPhoneNo());
insertCampusian.setString(6, campusian.getEmail());
insertCampusian.setString(7, campusian.getMaritalStatus());
insertCampusian.setString(8, campusian.getSex());
boolean result = insertCampusian.execute();
System.out.println("Is Successful: "+result);
if (!result) {
//connection.rollback();
return false;
}
} catch (SQLException ex) {
System.out.println("ERROR.. "+ex);
Logger.getLogger(CampusianDataBaseBean.class.getName()).log(Level.SEVERE, null, ex);
}
//connection.commit();
return true;
}
答案 0 :(得分:1)
尝试更改此行
boolean result = insertCampusian.execute();
通过这一行:
int result = insertCampusian.executeUpdate();
详细了解PreparedStatement.executeUpdate()
Java Doc:
在此PreparedStatement对象中执行SQL语句,该对象必须是SQL数据操作语言(DML)语句,例如INSERT,UPDATE或DELETE;或者什么都不返回的SQL语句,例如DDL语句。
答案 1 :(得分:0)
使用executeUpdate()
方法将记录写入数据库,使用executeQuery()
进行选择
答案 2 :(得分:0)
谢谢大家,我终于找到了问题所在。默认情况下,DML是自动提交的,因为我禁用了自动提交,我必须在任何时候使用DML。所以我做的是在每次插入后提交。这解决了问题