dbcp数据库的使用

下面是dbcp连接池的一个小例子,它包含了连接池管理类,连接池配置文件和一个测试类讲解如何获取链接和如何关闭链接。现在详述之。

1.相关的依赖包
使用jar包:commons-dbcp-1.4.jar、commons-pool-1.6.jar、commons-logging-1.1.3.jar,另外还有数据库的jdbc驱动,适用java6及以上平台。
2.连接池管理类

 1 package com.cyy.utils;
 2 
 3 import java.io.IOException;
 4 import java.sql.Connection;
 5 import java.sql.SQLException;
 6 import java.util.Properties;
 7 
 8 import javax.sql.DataSource;
 9 
10 import org.apache.commons.dbcp.BasicDataSourceFactory;
11 
12 
13 
14 
15 public final class JdbcUtils_Dbcp {
16 
17     private static DataSource ds;
18     
19     static{
20         Properties dbProp = new Properties();
21         try {
22             dbProp.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("dbcp.properties"));
23             ds = BasicDataSourceFactory.createDataSource(dbProp);
24         } catch (IOException e) {
25             // TODO Auto-generated catch block
26             e.printStackTrace();
27         } catch (Exception e) {
28             // TODO Auto-generated catch block
29             e.printStackTrace();
30         }
31     }
32     
33     public static final Connection getConnection() throws SQLException{
34         return ds.getConnection();
35     }
36 }

3.连接池配置文件
在src根目录下面新建一个配置文件dbcp.properties

 1 #数据库驱动  
 2 driverClassName=com.mysql.jdbc.Driver
 3 #数据库连接地址  
 4 url=jdbc:mysql://localhost/mybatis
 5 #用户名  
 6 username=root
 7 #密码  
 8 password=390032540
 9 #连接池的最大数据库连接数。设为0表示无限制  
10 maxActive=30
11 #最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连  
12 #接将被标记为不可用,然后被释放。设为0表示无限制  
13 maxIdle=10
14 #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制  
15 maxWait=1000
16 #超过removeAbandonedTimeout时间后,是否进 行没用连接(废弃)的回收(默认为false,调整为true)   
17 removeAbandoned=true
18 #超过时间限制,回收没有用(废弃)的连接(默认为 300秒,调整为180)  
19 removeAbandonedTimeout=180

4.测试类

package com.cyy.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.cyy.domain.User;
import com.cyy.utils.JdbcUtils;
import com.cyy.utils.JdbcUtils_Dbcp;

public class JdbcTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        // 通过jdbc与数据交互的一般步骤
       Connection conn = null;
        PreparedStatement statement = null; //预编译sql语句,防止SQL注入
        ResultSet rs = null;
        String sql = "select * from user where name=?";
        try {
            // 1.加载驱动
//            Class.forName("com.mysql.jdbc.Driver");

            // 2.获取连接
            conn = JdbcUtils_Dbcp.getConnection();

            // 3.创建查询语句
            statement = conn.prepareStatement(sql);

            // 4.向PrepareStatement占位符设置参数
            statement.setString(1, "cyy");

            // 5.执行查询语句,得到结果集
            rs = statement.executeQuery();
            if (rs.next()) {
                User user = new User();
                user.setId(rs.getInt(1));
                user.setBirthday(rs.getDate(3));
                user.setName(rs.getString(2));
                System.out.println(user);
            }
        }  catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            if(rs != null){
                try {
                    rs.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                rs = null;
            }
            
            if(statement != null){
                try {
                    statement.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                statement = null;
            }
            
            if(conn != null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                conn = null;
            }
            
            
    }
}

 

转载于:https://www.cnblogs.com/cyy3900/p/6534846.html

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值