首页 > 学院 > 开发设计 > 正文

将数据库操作封装到Javabean

2019-11-18 13:50:16
字体:
来源:转载
供稿:网友

  封装数据库操作,目的就是为了隐藏java.sql包内的类,在编码中去掉核心的数据库操作代码。以杜绝直接数据库操作轻易带来的资源未释放问题。同时也减少了数据库操作的编码量。

但是很多网友在封装时,却喜欢返回结果集(ResultSet对象),那么这个封装就没有意义了。
1. 又是直接操作核心数据库类,跟封装前几乎没什么变化。
2. 结果集总是依靠于它使用的连接(Connection)对象。因此当连接对象在方法内被关闭后,你返回的ResultSet就没有用了。

假如真的要获得查询数据库的结果集,就把结果集对象内的所有数据,转储到以Map为元素的List对象内。
当然,这种方式,不能适应大数据量的查询,不过假如真的碰到大数据量的查询,那用什么封装都不好,还是得直接数据库操作. :)))

下面是简单的数据库操作Javabean的代码

DbWrapper.java
import java.sql.*;
import java.util.*;
public class DbWrapper
{
// 定义连接池对象为静态变量,将一直存在,直到工作目录关闭。
PRivate static DataSource ds = null;
// 1.用连接池的方式获得连接
// 假如不是做多数据库程序,推荐使用此方法
// 相关内容:在tomcat治理界面配置连接池
public static Connection openConnection() throws Exception
{
// 只需要初始化1次
if ( ds == null )
{
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/MyDataSource");
}
return ds.getConnection();
}

// 2.用jdbc驱动获得连接
// 相关内容:jsp数据库连接大全
public static Connection openConnection(
String driver,
String url,
String username,
String passWord)
throws Exception
{
Class.forName(driver).newInstance();
return DriverManager.getConnection(url, username, password);
}

public static void closeConnection(Connection conn) throws Exception
{
if ( conn != null )
{
conn.close();
}
}
public static int executeUpdate(String sql) throws Exception
{
int count = 0;

Connection conn = null;
Statement stmt = null;

try
{
conn = openConnection();
stmt = conn.createStatement();

count = stmt.executeUpdate(sql);
}
catch ( Exception e )
{
throw e;
}
finally
{
closeConnection(conn);
}

return count;
}

public static List executeQuery(String sql) throws Exception

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表