public boolean add(StudentAddAction stu){
String sql = " INSERT INTO student(name,sex,birthday,address,emailNum,telephone,departmentId,majorId,gybh) " +
" values(?,?,?,?,?,?,?,?,?)"; boolean b = false;
PreparedStatement stmt = null;
try {
stmt = con.prepareStatement(sql);
stmt.setString(1, stu.getName());
stmt.setString(2, stu.getSex());
stmt.setString(3, stu.getBirthday());
stmt.setString(4, stu.getAddress());
stmt.setString(5, stu.getEmailNum());
stmt.setString(6, stu.getTelephone());
stmt.setString(7, stu.getDepartmentId());
stmt.setString(8, stu.getMajorId());
stmt.setString(9, stu.getGybh());
b = stmt.execute();
if(b){
System.out.println("操作成功!"+b);
}else {
System.out.println(b);
}
} catch (SQLException e) {
e.printStackTrace();
if(stmt!=null){
try {
stmt.close();//关闭statement对象链接
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}
return b;
}
String sql = " INSERT INTO student(name,sex,birthday,address,emailNum,telephone,departmentId,majorId,gybh) " +
" values(?,?,?,?,?,?,?,?,?)"; boolean b = false;
PreparedStatement stmt = null;
try {
stmt = con.prepareStatement(sql);
stmt.setString(1, stu.getName());
stmt.setString(2, stu.getSex());
stmt.setString(3, stu.getBirthday());
stmt.setString(4, stu.getAddress());
stmt.setString(5, stu.getEmailNum());
stmt.setString(6, stu.getTelephone());
stmt.setString(7, stu.getDepartmentId());
stmt.setString(8, stu.getMajorId());
stmt.setString(9, stu.getGybh());
b = stmt.execute();
if(b){
System.out.println("操作成功!"+b);
}else {
System.out.println(b);
}
} catch (SQLException e) {
e.printStackTrace();
if(stmt!=null){
try {
stmt.close();//关闭statement对象链接
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}
return b;
}
throws SQLException在此 PreparedStatement 对象中执行 SQL 语句,该语句可以是任何种类的 SQL 语句。一些特别处理过的语句返回多个结果,execute 方法处理这些复杂的语句,executeQuery 和 executeUpdate 处理形式更简单的语句。
execute 方法返回一个 boolean 值,以指示第一个结果的形式。必须调用 getResultSet 或 getUpdateCount 方法来检索结果,并且必须调用 getMoreResults 移动到任何后面的结果。
返回:
如果第一个结果是 ResultSet 对象,则返回 true;如果第一个结果是更新计数或者没有结果,则返回 false
if(i>0){
//插入成功
}else{
//失败
}
如果执行过程中,没有出异常信息,就表示插入成功啊,同时也可以利用异常来提示插入失败的,比如,你这个可以这样写啊:public void add(StudentAddAction stu){ //返回空就可以了 String sql = " INSERT INTO student(name,sex,birthday,address,emailNum,telephone,departmentId,majorId,gybh) " +
" values(?,?,?,?,?,?,?,?,?)"; boolean b = false;
PreparedStatement stmt = null;
try {
stmt = con.prepareStatement(sql);
stmt.setString(1, stu.getName());
stmt.setString(2, stu.getSex());
stmt.setString(3, stu.getBirthday());
stmt.setString(4, stu.getAddress());
stmt.setString(5, stu.getEmailNum());
stmt.setString(6, stu.getTelephone());
stmt.setString(7, stu.getDepartmentId());
stmt.setString(8, stu.getMajorId());
stmt.setString(9, stu.getGybh());
b = stmt.execute();
} catch (SQLException e) {
System.out.println("插入失败");//如果插入失败,就会执行catch子句啊,可在这提示插入失败
}finally{ //关闭对象应该放在finally里,因为不管操作成功与否,都应该关
if(stmt!=null){
try {
stmt.close();//关闭statement对象链接
} catch (SQLException e1) {
e1.printStackTrace();
}
}
if(con!=null){//con连接也应该关的,且关时,应该遵循先开的后关原则啊,否则会报异常
try {
con.close();//关闭statement对象链接
} catch (SQLException e2) {
e2.printStackTrace();
}
}
}
}
现在问题是我需要一个标识来判断插入是否成功,如果成功我给request里面放ok,如果不成功放fail
目前我用executeUpdate()方法来代替 返回的是int
execute() 就不能来判断吗?我在网上找了很多 还是没有相关的方法。
有没有谁知道怎么用一楼给的getResultSet 或 getUpdateCount ?
b=true;
}else b=false;
return b