jsp连接数据库的beans出错了! public ResultSet executeUpdate(String sql) { 返回类型错了,不是ResultSet 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 添加、删除、修改的方法返回值不能为空!!!dui,返回int count = smt.executeUpdate(sql); executeUpdate(sql) 返回的是int不是ResultSet Dbconn.java:40: missing return statementpublic int executeUpdate(String sql) { ^1 errorpackage Sqlconn;import java.sql.*; public class Dbconn { String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";String url = "jdbc:microsoft:sqlserver://localhost:1433;databaseName=java";String user = "sa";String password = "icncn1218";Connection conn = null; Statement smt=null;ResultSet rs = null; //这是全局变量public Dbconn(){ try { Class.forName(driver); conn = DriverManager.getConnection(url,user,password); } catch(Exception ee) { System.out.println("无法加载驱动程序:"+driver); ee.printStackTrace(); }} public ResultSet executeQuery(String sql) { try { smt = conn.createStatement(); rs = smt.executeQuery(sql); return rs; } catch(SQLException ex) { System.err.println("aq.executeQuery: " + ex.getMessage()); } return null; }public int executeUpdate(String sql) { try { smt = conn.createStatement(); int rowCount = smt.executeUpdate(sql); return rowCount; } catch(SQLException ex) { System.err.println("aq.executeUpdate: " + ex.getMessage()); }}} 我記得“添加、删除、修改”是沒有返回值的。你用void試試 executeUpdate 可以返回被操作的纪录条数。你做了封装,当然可以设计为void,或者你设计为boolean, int都没问题。不用void,又同时使用try_catch结构的,记住一定要在最后reutrn 一个值,因为编译的时候会认为你没有返回值的,理论上try里的语句会执行不到。 你把查询和修改、删除、插入分开来,分别写函数。修改如下public ResultSet executeQuery(String sql) { try { smt = conn.createStatement(); rs = smt.executeQuery(sql); return rs; } catch(SQLException ex) { rs.close(); smt.close(); conn.close();//按顺序关闭!System.err.println("aq.executeQuery: " + ex.getMessage()); } finally{ rs.close(); smt.close(); conn.close(); } return rs; }public int executeUpdate(String sql) { int count = 0; try { smt = conn.createStatement(); count = smt.executeUpdate(sql); return count; //这儿错了 } catch(SQLException ex) { smt.close(); conn.close(); System.err.println("aq.executeUpdate: " + ex.getMessage()); } finally{ smt.close(); conn.close(); }return count;} smt.executeQuery(sql)---------返回的是ResultSetsmt.executeUpdate(sql)---------返回的是int 跪求进度条 Eclipse和 MyEclipse的区别 请问大家java项目里有一个CoDB.jar的jar包是哪开发的数据库驱动 怎样让从数据库读取的值为NULL的不显示为NULL 定义数组这样写为什么不行呢?谢谢 如何将数据库中的内容生成shtml文件 怎么实现购物车??? 菜鸟提问请各位大哥帮忙回答一下——谢谢了 bean的可见范围问题,100分求教。 java调用https的webservice接口 weblogic+oracle部分汉字问题 请大家帮忙,谢谢!!
dui,返回int
executeUpdate(sql) 返回的是int不是ResultSet
public int executeUpdate(String sql) {
^
1 errorpackage Sqlconn;
import java.sql.*;
public class Dbconn { String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url = "jdbc:microsoft:sqlserver://localhost:1433;databaseName=java";
String user = "sa";
String password = "icncn1218";Connection conn = null;
Statement smt=null;
ResultSet rs = null; //这是全局变量public Dbconn(){
try {
Class.forName(driver);
conn = DriverManager.getConnection(url,user,password);
}
catch(Exception ee)
{ System.out.println("无法加载驱动程序:"+driver);
ee.printStackTrace();
}
} public ResultSet executeQuery(String sql) { try {
smt = conn.createStatement();
rs = smt.executeQuery(sql);
return rs;
}
catch(SQLException ex) {
System.err.println("aq.executeQuery: " + ex.getMessage());
} return null;
}public int executeUpdate(String sql) {
try {
smt = conn.createStatement();
int rowCount = smt.executeUpdate(sql);
return rowCount;
}
catch(SQLException ex) {
System.err.println("aq.executeUpdate: " + ex.getMessage());
}
}
}
不用void,又同时使用try_catch结构的,记住一定要在最后reutrn 一个值,因为编译的时候会认为你没有返回值的,理论上try里的语句会执行不到。
修改如下public ResultSet executeQuery(String sql) { try {
smt = conn.createStatement();
rs = smt.executeQuery(sql);
return rs;
}
catch(SQLException ex) {
rs.close();
smt.close();
conn.close();//按顺序关闭!
System.err.println("aq.executeQuery: " + ex.getMessage());
}
finally
{
rs.close();
smt.close();
conn.close();
}
return rs;
}public int executeUpdate(String sql) {
int count = 0; try {
smt = conn.createStatement();
count = smt.executeUpdate(sql);
return count; //这儿错了 }
catch(SQLException ex) {
smt.close();
conn.close();
System.err.println("aq.executeUpdate: " + ex.getMessage());
}
finally
{
smt.close();
conn.close();
}
return count;
}
smt.executeUpdate(sql)---------返回的是int