本人刚学JavaEE,请问下这样的封装数据库的方法是否可以(只是稍微写了2个方法)
忘赐教
package DAO;
import java.sql.*;public class DaoPool {
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";  //加载JDBC驱动
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=FocusDB";  //连接服务器和数据库FocusDB
    String userName = "sa";  //默认用户名
String userPwd = "123456";  //密码
Connection dbConn;
Statement stmt;

/*
 * 数据库连接方法
 */
private void openConn() throws ClassNotFoundException, SQLException{
closeConn();//假如没关闭先关闭
Class.forName(driverName);
dbConn=DriverManager.getConnection(dbURL,userName,userPwd);
stmt=dbConn.createStatement();
}

/*
 * 关闭数据库
 */
public void closeConn() throws SQLException{
if(stmt!=null)
stmt.close();
if(dbConn!=null)
dbConn.close();
}

/*
 * <title>执行查询</title>
 * <param=sql>sql语句</param>
 */
public ResultSet ExecuteQuery(String sql) throws ClassNotFoundException, SQLException{
openConn();//打开数据库
return stmt.executeQuery(sql);
}

/*
 * <title>执行无返回操作</title>
 * <param=sql>sql语句</param>
 */
public int ExecuteUpdate(String sql) throws ClassNotFoundException,SQLException{
openConn();
return stmt.executeUpdate(sql);
}

}

解决方案 »

  1.   

    用jdbc就这样啊,千篇一律很标准
      

  2.   

    为什么不使用 成熟的 数据库连接池?proxool
      

  3.   

    我想问下你关闭数据库连接的函数为什么要写成public的呢?
    直接用private不行么?在ExecuteQuery和ExecuteUpdate方法中执行完数据库操作后调用该方法!这样呈现给外部的只是两个方法不是很好吗?
      

  4.   

    ResultSet对象要求数据库连接必须是打开状态,如果关闭了,ResultSet就失效了,如果在执行方法里就关闭,那我们就如何获得ResultSet?在调用者方法里进行关闭就需要用到public的关闭方法
      

  5.   

    你这是写到一个 java 类了吧?
    如果你的其他的java 类还要用到这个 数据库连接,那么你还得把这个里面的 数据库连接放到另外的java类里去啊?建议写一个公共的数据库连接,最好用个数据库连接池,谁用到数据库连接,谁就去调用。不用了就关闭。
      

  6.   

    要加载的url username password还是放到外部配置文件中吧