文档章节

JDBCTools 工具类(c3p0连接池获取连接,关闭连接,基本事务)

宇哥v587
 宇哥v587
发布于 2017/04/06 17:08
字数 417
阅读 84
收藏 0

/**
 * Driver 是一个接口:数据库厂商必须提供实现的接口,能从其中获取数据库连接
 * DriverManager 是驱动的管理类
 * 1)、可以通过重载的 getConnection() 方法获取数据库连接(方便)
 * 2)、可以同时管理多个驱动程序:若注册了多个数据库连接,则调用 getConnection()
 * 方法时传入的参数不同,即返回不同的数据库连接。
 */
public class JDBCTools {
    private  JDBCTools() {
    }
    /**
     * 关闭数据库连接
     */
    public static void release(ResultSet resultset, Statement statement,Connection conn){
        try {
            if (resultset!=null)
                resultset.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            if (statement!=null)
                statement.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        //数据库连接池的 Connection 对象进行 close 时
        //并不是真的进行关闭, 而是把该数据库连接会归还到数据库连接池中
        try {
            if (conn!=null)
                conn.close();                
        } catch (SQLException e) {
            e.printStackTrace();
        }    
    }
    
    //在整个项目里面一般只需要一个连接池
    private static DataSource dataSource = null;
    //数据库连接池应只被初始化一次。
    static{
        dataSource = new ComboPooledDataSource("helloc3p0");
    }
    /**
     * 创建数据库连接
     */
    public static Connection getConnection() throws SQLException{
        return dataSource.getConnection();
    }
//    public static Connection getConnection() throws IOException, ClassNotFoundException, SQLException{
//        //1、创建四个用来连接数据库的字符串
//        String driverClass=null;
//        String jdbcURL=null;
//        String user=null;
//        String password=null;
//        
//        Properties    pro=new Properties();
//        InputStream in=
//                JDBCTools.class.getClassLoader().getResourceAsStream("jdbc.Properties");
//        pro.load(in);
//        driverClass=pro.getProperty("driver");
//        jdbcURL=pro.getProperty("jdbcUrl");
//        user=pro.getProperty("user");
//        password=pro.getProperty("password");
//        //2、加载数据库驱动
//        Class.forName(driverClass);
//        //3、连接数据库
//        Connection connection=DriverManager.getConnection(jdbcURL, user, password);
//        return connection;
//    }
    /**
     * 开始事务
     */
    public static void beginTx(Connection conn){
        if (conn != null) {
            try {
                conn.setAutoCommit(false);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    /**
     * 回滚事务
     */
    public static void rollback(Connection conn){
        if (conn != null) {
            try {
                conn.rollback();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    /**
     * 提交事务
     */
    public static void commit(Connection conn){
        if(conn != null){
            try {
                conn.commit();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

 

    
     
          
  

© 著作权归作者所有

宇哥v587
粉丝 1
博文 47
码字总数 20855
作品 0
南京
程序员
私信 提问
53.c3p0连接数据库=======》控制事务

1.效果 2.准备 2.1导入需要的jar 2.2 导入c3p0工具类 c3p0工具类代码 package cn.ma.utils; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import......

Lucky_Me
2017/11/16
35
0
连接池详解,c3p0与dbcp的区别!

连接池: 连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。这项技术能明显提高对数据库操作的性能。 连接池的好处: (1)对于大多数应用程序,当它们正...

IT_laobai
2018/06/20
0
0
Java开发基础(三)——JDBC连接池

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/simonforfuture/article/details/90451339 文章目录 前言 数据库连接...

simon曦
05/22
0
0
com.mchange.v2.c3p0.combopooleddatasource配置的那些破事

<default-config>   <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->   <property name="acquireIncrement">3</property>   <!--定义在从数据库获取新连接失......

蔡少东
2015/01/06
27.3K
0
C3P0的详细配置说明(com.mchange.v2.c3p0.ComboPooledDataSource)

C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。 c3p0-config> <default-config...

叶建平
2010/12/31
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

Docker常用命令小记

除了基本的<font color="blue">docker pull</font>、<font color="blue">docker image</font>、<font color="blue">docker ps</font>,还有一些命令及参数也很重要,在此记录下来避免遗忘。 ......

程序员欣宸
昨天
3
0
MAT使用-jvm内存溢出问题分析定位

1.MAT简介: MAT 全称 Eclipse Memory Analysis Tools 是一个分析 Java堆数据的专业工具,可以计算出内存中对象的实例数量、占用空间大小、引用关系等,看看是谁阻止了垃圾收集器的回收工作,...

xiaomin0322
昨天
4
0
内网和外网之间的通信(端口映射原理)

首先解释一下“内网”与“外网”的概念: 内网:即所说的局域网,比如学校的局域网,局域网内每台计算机的IP地址在本局域网内具有互异性,是不可重复的。但两个局域网内的内网IP可以有相同的...

Jack088
昨天
5
0
3.深入jvm内核-原理、诊断与优化-4. GC算法和种类

一、GC算法和种类 GC的概念 GC算法 引用计数法 标记清除 标记压缩 复制算法 可触及性 Stop-The-World GC的对象是堆空间和永久区 引用计数法 老牌垃圾回收算法 通过引用计算来回收垃圾 使用者...

hexiaoming123
昨天
4
0
MySQL中的哈希索引

Memory中的哈希索引 哈希索引是基于哈希表实现的,只有精确匹配索引所有列的查询才有效。对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码,哈希码是一个较小的值,并且不同键值的...

我的眼里只有眼屎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部