zoukankan      html  css  js  c++  java
  • JDBC从连接池获取连接

    DBCP介绍

    DBCP是Java开源连接池中常用的一种,它一般应用在使用数据库频繁的系统中,可以处理大量数据库连接请求。

    简单配置

    driverClassName=com.mysql.jdbc.Driver
    url=jdbc:mysql://127.0.0.1:3306/test
    username=root
    password=123456
    maxActive=50
    maxIdle=20
    maxWait=60000
    

    添加依赖

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-dbcp2</artifactId>
        <version>2.1.1</version>
    </dependency>
    

    代码展示

    DBUtil工具类

    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.util.Properties;
    import javax.sql.DataSource;
    import org.apache.commons.dbcp2.BasicDataSourceFactory;
    public class DBUtil {
        private static DataSource ds;
        private static Connection conn;
        static {
            try {
                Properties properties = new Properties();
                InputStream inStream = DBUtil.class.getResourceAsStream("dataSouce.properties");
                properties.load(inStream);
                ds = BasicDataSourceFactory.createDataSource(properties);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        // 获取连接
        public static Connection getConn() throws SQLException {
            if (conn == null || conn.isClosed()) {
                conn = ds.getConnection();
            }
            return conn;
        }
        // 回收连接
        public static void closeConn() {
            try {
                if (conn != null && !conn.isClosed()) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                conn = null;
            }
        }
    }
    

    操作数据库

    import java.sql.Connection;
    import java.sql.Statement;
    public class Test {
        public static void main(String[] args) throws Exception {
            Connection conn = DBUtil.getConn();
            conn.setAutoCommit(false);
            Statement stmt = conn.createStatement();
            int rs = stmt.executeUpdate("DELETE FROM user WHERE name='qiang'");
            if (rs > 0) {
                System.out.println("更新成功!");
                conn.rollback();
            } else {
                System.out.println("更新失败!");
                conn.commit();
            } finally {
                stmt.close();
                DBUtil.closeConn();
            }     
        }
    }
    
  • 相关阅读:
    SQL-LINQ-Lambda 语法对照
    C#.NET面向对象(语法点)
    4.5 基于STM32+MC20远程短信控制开关
    4.4 使用STM32控制MC20进行GPS帧数据解析
    4.3 使用STM32控制MC20进行GPRS通讯
    4.2 使用STM32控制MC20发送短信
    4.1 使用STM32控制MC20拨打电话
    3.6.使用STC89C52控制MC20解析GPS的经纬度数据上传到指定服务器
    3.5.基于STC89C52+MC20的短信远程控制开关LCD1602显示
    3.4 使用STC89C52控制MC20解析GPS的经纬度数据在LCD1602上显示
  • 原文地址:https://www.cnblogs.com/feiqiangsheng/p/11406470.html
Copyright © 2011-2022 走看看