您的位置:首页 > 数据库

Dao对数据库的操作进行封装

2014-08-06 14:01 429 查看
当我们在页面中对数据库的信息进行请求时,往往在servlet中写了很多重复的数据库的操作,这使得我们的代码很冗长,代码的效率低下,因此,我们可以用一个类来把这些相同的部分封装起来,每次使用数据库时调用这个类就可以了。下面我就简单的写个这个类BaseDao,实现对数据库的基本操作。

package dao;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.List;

public class BaseDao {

//定义了全局变量

private final String URL="jdbc:oracle:thin:@127.0.0.1:1521:orcl";

private final String USER="gsuser";

private final String PWD="gsuser";

private Connection conn;

private PreparedStatement stmt;

private ResultSet rs;

//加载驱动

static{

try {

Class.forName("oracle.jdbc.OracleDriver");

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

//建立连接

private Connection getConnection(){

Connection conn=null;

try {

conn=DriverManager.getConnection(URL,USER,PWD);

} catch (SQLException e) {

e.printStackTrace();

}

return conn;

}

/**

* 数据更新方法

* @param sql 更新语句insert update delete

* @param params 参数

* @return

*/

public int executeUpdate(String sql,List<Object> params){

int i=0;

conn=getConnection();

try {

stmt=conn.prepareStatement(sql);

if(params!=null){

for(int j=0;j<params.size();j++){

stmt.setObject(j+1, params.get(j));

}

}

i=stmt.executeUpdate();

} catch (SQLException e) {

e.printStackTrace();

}finally{

closeAll();

}

return i;

}

/**

* 数据查询方法

* @param sql select

* @param params 参数

* @return 结果集

*/

public ResultSet executeQuery(String sql,List<Object> params){

conn=getConnection();

try {

stmt=conn.prepareStatement(sql);

if(params!=null){

for(int j=0;j<params.size();j++){

stmt.setObject(j+1, params.get(j));

}

}

rs=stmt.executeQuery();

} catch (SQLException e) {

e.printStackTrace();

}

return rs;

}

//关闭资源

public void closeAll() {

try {

if (rs != null) {

rs.close();

rs = null;

}

if (stmt != null) {

stmt.close();

stmt = null;

}

if (conn != null) {

conn.close();

conn = null;

}

} catch (SQLException e) {

e.printStackTrace();

}

}

}

这样每次遇到具体的类时,直接继承这个dao即可,从而达到对数据库的增删改查操作,既方便又提高了效率。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: