import java.sql.*;
public class DBconn{
String DBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String ConnStr="jdbc:odbc:Customers";
Connection conn=null;
ResultSet rs=null;
public DBconn{
try {
Class.forName(DBDriver);
}
catch(java.lang.ClassNotFoundException e){
System.err.println("DBconn():"+e.getMassage());
}
}
public ResultSet executeQuery(String sql){
rs=null;
try{
conn=DriverManager.getConnection(ConStr);
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch(SQLException ex){
System.err.print("aq.executeQuery:"+ex.getMessage()):
}
return rs;
}
}
有什么问题??程序本身是对的(如果你没有打错字的话),不过有两个地方不合适
一是连接数据库时使用了jdbc-odbc桥的方式,连接数少的时候速度比较快,但是如果并发连接数比较大,比如20以上,效率成问题,建议换成专门的java数据库驱动来做,负载能力会强得多.
二是javabean返回了一个rs,这就意味着必须保持这个数据库连接,才能保证这个rs能够被jsp或者是servlet使用,这样做非常浪费服务器资源.jdbc里面有多种数据集,比如rowset,webset等,可以关闭数据库连接脱机使用.也可以把数据读出来放到hashtable或者list里,在返回给jsp/servlet,都是比较好的选择.
你不会自己检查一下的吗?
F:\wangf\WEB-INF\DBconn.java:23: ; expected
System.err.print("aq.executeQuery:"+ex.getMessage()):
~~;
F:\wangf\WEB-INF\DBconn.java:12: cannot resolve symbol
symbol : method getMassage ()
location: class java.lang.ClassNotFoundException
System.err.println("DBconn():"+e.getMassage());
~~~~~~~~e.getMessage()
F:\wangf\WEB-INF\DBconn.java:18: cannot resolve symbol
symbol : variable ConStr
location: class DBconn
conn=DriverManager.getConnection(ConStr);
~~~~~~ConnStr