失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > DBCP数据库连接池的使用

DBCP数据库连接池的使用

时间:2020-04-01 11:35:52

相关推荐

DBCP数据库连接池的使用

数据库|mysql教程

DBCP,数据库,连接,使用,package,tk.dong

数据库-mysql教程

公司asp源码,ubuntu vi注释行,爬虫族天龙人,libiconv php,昌吉seo优化lzw

package tk.dong.connectionPool;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Properties;import jav

设备维护保养记录源码,ubuntu+静态wifi,R爬虫自动翻页,梅林php,未来seo企业lzw

婚庆公司网站php源码,ubuntu下安装nvm,手动关闭tomcat7,黄蜂爬虫子,php 岗位hr 面试,渝北专业的seo效果好不好lzw

package tk.dong.connectionPool;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Properties;import javax.sql.DataSource;import mons.dbcp.BasicDataSourceFactory;public class Pool_dbcp {// 首先要导入包commons-pool.jar和commons-dbcp-1.4.jar// 声明数据源private static DataSource dataSource;private static PreparedStatement pstmt;private static ResultSet rs;static {// 将配置文件以输入流的形式读入InputStream inputStream = Pool_dbcp.class.getClassLoader().getResourceAsStream("dbcp.properties");// 创建属性操作的对象Properties properties = new Properties();try {// 将配置文件读入properties.load(inputStream);// 创建基础的数据源处理工厂类的对象BasicDataSourceFactory basicDataSourceFactory = new BasicDataSourceFactory();// 通过基础的数据处理工厂创建出数据源dataSource = basicDataSourceFactory.createDataSource(properties);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}// 创建返回连接对象的方法public static Connection getConn() {try {return dataSource.getConnection();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}public static void release(ResultSet rs, PreparedStatement pstmt) {// 释放结果集if (rs != null) {try {rs.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}// 释放准备语句if (pstmt != null) {try {pstmt.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}// 更新数据的操作增,删,改要用到的封装方法public static boolean upDate(String sql, Object[] obj) {boolean flag = false;try {// 准备语句的创建,带有sql命令的对象pstmt = getConn().prepareStatement(sql);for (int i = 1; i 0) {flag = true;}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {release(rs, pstmt);}return flag;}// 进行批量删除处理public static boolean updateBatchDel(String sql, Object[] ids) {boolean flag = false;Connection conn = getConn();PreparedStatement pstmt = null;ResultSet rs = null;try {conn.setAutoCommit(false);pstmt = conn.prepareStatement(sql);for (int i = 0; i < ids.length; i++) {pstmt.setObject(1, ids[i]);System.out.println(sql + "---------------" + ids[i]);pstmt.addBatch();}int[] num = pstmt.executeBatch(); // 批量执行for (int i = 0; i < num.length; i++) {if (num[i] == 0) {try {conn.rollback(); // 进行事务回滚return flag;} catch (SQLException ex) {ex.printStackTrace();}}}mit();// 提交事务flag = true;} catch (SQLException e) {e.printStackTrace();} finally {release(rs, pstmt);}return flag;}// 根据传入的表的名称,和每页数据得到传入表的所有的页数// tableName:::::操作的数据表名称// pagesize::::::每页显示的信息条数public static Integer getCountPage(String tableName, Integer pagesize) {Integer countPage = 0;String sql = "select count(*) as c from " + tableName;Connection conn = Pool_dbcp.getConn();PreparedStatement pstmt = null;ResultSet rs = null;conn = Pool_dbcp.getConn();try {pstmt = conn.prepareStatement(sql);rs = pstmt.executeQuery();if (rs.next()) {int countRecord = rs.getInt("c");countPage = countRecord % pagesize == 0 ? countRecord/ pagesize : countRecord / pagesize + 1;}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {Pool_dbcp.release(rs, pstmt);}return countPage;}}

如果觉得《DBCP数据库连接池的使用》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。