基于DBCP的数据库连接池对象

来源:互联网 发布:算法导论有什么用 编辑:程序博客网 时间:2024/06/06 08:33
import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import org.apache.commons.dbcp.BasicDataSource;public class BaseDao {    //定义静态的连接池对象引用    private static BasicDataSource dataSource = null;    static{        // 创建基于DBCP的数据库连接池对象        dataSource = new BasicDataSource();        // 1.设置数据库连接池的数据库连接参数        dataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");        dataSource.setUrl("jdbc:sqlserver://localhost:1433;DataBaseName=CMS");        dataSource.setUsername("sa");        dataSource.setPassword("");        //设置运行参数        dataSource.setInitialSize(100);//初始连接数量        dataSource.setMaxActive(200);//设置最大的活动连接数量        dataSource.setMaxWait(60);//设置最长等待时间        dataSource.setMinIdle(20);//设置最少空闲连接数量        dataSource.setMaxIdle(50);//设置最多的空闲数量连接    }    //返回一个连接对象    public static Connection createConnection(){        try {            // 从数据库连接池中,获取一个空闲状态的连接对象            Connection con = dataSource.getConnection();            return con;        } catch (SQLException e) {            e.printStackTrace();            return null;        }    }    //关闭连接    public static void close(Connection con,PreparedStatement pst){        try {            pst.close();        } catch (SQLException e) {            e.printStackTrace();            pst = null;        }        try {            con.close();        } catch (SQLException e) {            e.printStackTrace();            con = null;        }    }    //关闭连接    public static void close(Connection con,PreparedStatement pst,ResultSet rs){        try {            rs.close();        } catch (SQLException e) {            e.printStackTrace();            rs = null;        }        close(con,pst);    }}
import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import cn.jbit.cms.dao.NewsDao;import cn.jbit.cms.entity.News;/* * 实现类 */public class NewDaoSQLServerImpl  implements NewsDao {    @Override    public List<News> queryNews() {        Connection con = null;        PreparedStatement pst = null;        ResultSet rs = null;        String sql = "select * from news";        List<News> list = new ArrayList<News>();        try {            con = BaseDao.createConnection();            pst = con.prepareStatement(sql);            rs = pst.executeQuery();            while(rs.next()){                News news = new News();                news.setAuthor(rs.getString("author"));                news.setContent(rs.getString("content"));                news.setCreateTime(rs.getDate("createTime"));                news.setId(rs.getInt("id"));                news.setTitle(rs.getString("title"));                list.add(news);            }            return list;        } catch (SQLException e) {            e.printStackTrace();            return null;        }    }}
package com.prj.demo;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class DBHelper {    static{        try {            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");        } catch (ClassNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    public static Connection createConnection(){        try {            Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DataBaseName=NetStoreDB","sa","");            return con;        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();            return null;        }    }    public static void close(PreparedStatement pst,Connection con){        try {            pst.close();        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();            pst = null;        }        try {            con.close();        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();            con = null;        }    }    public static void close(ResultSet rs,PreparedStatement pst,Connection con){        try {            rs.close();        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();            rs= null;        }        close(pst,con);    }}
0 0
原创粉丝点击