首先导入两个jar包一个C3P0的

c3p0-0.9.1.2.jar

另一个是你所使用的数据库的

mysql-connector-java-5.1.7-bin.jar

接下来就是直接上代码:

package com.c3p0.cn;import org.junit.Test;import com.mchange.v2.c3p0.ComboPooledDataSource;public class C3P0_Test {/*** 硬链接* @throws Exception*/@Testpublic void c3p0_Test_old() throws Exception {ComboPooledDataSource dataSource = new ComboPooledDataSource();//数据源端口池dataSource.setDriverClass("com.mysql.jdbc.Driver");dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/staff");dataSource.setUser("root");dataSource.setPassword("123456");dataSource.setInitialPoolSize(3);//设置初始链接数dataSource.setMaxPoolSize(6);//设置最大连接数dataSource.setMaxIdleTime(3000);//设置最大活跃时间dataSource.getConnection().prepareStatement("delete from user where id = 18").executeUpdate();}/*** 配置方式链接* @throws Exception*/@Testpublic void c3p0_Test() throws Exception {ComboPooledDataSource dataSource = new ComboPooledDataSource();//默认会调用src下面的c3p0_config.xml配置文件dataSource.getConnection().prepareStatement("delete from user where id = 19").executeUpdate();}
}

作为JDBC使用的时候可以结合DBUtils的包一起使用,而且代码实现非常方便(下面就是采用两个jar包,结合使用的查询数据库中元素的方式)

package com.xinzhi.utils;import org.apache.commons.dbutils.QueryRunner;import com.mchange.v2.c3p0.ComboPooledDataSource;public class JdbcUtils {public static QueryRunner getQueryRunner(){ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();QueryRunner queryRunner = new QueryRunner(comboPooledDataSource);return queryRunner;}
}

package com.xinzhi.dao.impl;import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;import com.xinzhi.dao.UserDao;
import com.xinzhi.empity.User;
import com.xinzhi.utils.JdbcUtils;public class UserDaoImpl implements UserDao {public List<User> getAll() {QueryRunner queryRunner = JdbcUtils.getQueryRunner();String sql = "select * from userempity";List<User> users = new ArrayList<User>();try {users = queryRunner.query(sql,new BeanListHandler<User>(User.class));} catch (SQLException e) {throw new RuntimeException(e);}return users;}}

硬链接是不需要配置文件的,而配置链接是需要配置文件的,而c3p0在创建对象的时候默认会在src文件夹下面寻找一个叫c3p0_config.xml的配置文件

而这个默认的配置文件是有固定的格式参考如下,其中提供了可链接多个数据库的方式:

c3p0-config.xml

<c3p0-config><default-config><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://localhost:3306/staff</property><property name="user">root</property><property name="password">123456</property></default-config><named-config name="oracle_database"><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://localhost:3306/staff</property><property name="user">root</property><property name="password">123456</property></named-config></c3p0-config>

转载于:https://www.cnblogs.com/ShaoXin/p/6841256.html

链接数据库超级简单的工具类C3P0谁用谁知道相关推荐

  1. JDBC【介绍JDBC、使用JDBC连接数据库、简单的工具类】

    什么是JDBC JDBC全称为:Java Data Base Connectivity,它是可以执行SQL语句的Java API 为什么我们要用JDBC 市面上有非常多的数据库,本来我们是需要根据不同 ...

  2. 【Spring之轨迹】结合 @Scheduled 实现定时将 Redis 缓存刷入数据库(配 Redis 工具类与例子实战)

    -- 目录 -- 0. 假设已配置好 SSM 环境 1. 配置文件 2. 定时服务 3. cron 解释 ① cron 参数(按顺序依次为) ② 特殊符号 4. Redis 工具类 5. 例子实战 0 ...

  3. struts+hibernate+oracle+easyui实现lazyout组件的简单案例——工具类

    次此篇文章是两个工具类的实现,HibernateUtil.java和分页的工具类PageUtil.java的实现: 先看看HibernateUtil.java的实现: package org.util ...

  4. java将链接生成二维码工具类

    一.添加依赖 <!-- 生成二维码--><dependency><groupId>com.google.zxing</groupId><artif ...

  5. Java超级工具_Java 16个超级实用的工具类

    在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类. 以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 一. ...

  6. 超级简单的工具——Video Speed Controller,玩转百度云,轻松解锁百度云视频倍速播放功能!

    有经常使用百度云盘看视频需求的小伙伴肯定清楚百度的niao性,如果我们不是人民币玩家,咱就不配享用人家的在线视频倍速播放功能.Emm- 今天给大家分享一个十分简单的工具--Video Speed Co ...

  7. java dateutils_Java中简单日期工具类DateUtils的实现

    最近工作时经常处理日期,想起以前sql server中datediff,dateadd 等方法非常好用,于是想在java中实现类以的功能,而且提高精度,所以初步有了以下代码: package com. ...

  8. uniapp APP 端 WebSocket 使用,实现一个简单 WebSocket 工具类

    背景 最近有需求要做一个简单业务的 APP 应用,简单考虑选用 uniapp + uview + vue2.x 方案,因为还有web端页面也需要用到 WebSocket ,简单封装了一个适应 web ...

  9. Mac|关于mac如何卸载mysql数据库超级简单

    卸载原因 因为本人在终端输入下面一行指令出现zsh: command not found: mysql这种提示. mysql -u root -p 后在查阅资料和前人的经验之后,又出现Too many ...

  10. 基于ansj_seg和nlp-lang的简单nlp工具类

    1.首先在pom中引入ansj_seg和nlp-lang的依赖包, ansj_seg包的作用: 这是一个基于n-Gram+CRF+HMM的中文分词的java实现: 分词速度达到每秒钟大约200万字左右 ...

最新文章

  1. 应用层级时空记忆模型(HTM)实现对时序数据的异常检测
  2. linux 音频路径,Linux系统中提取DVD音频的方法介绍(转)
  3. C++之肥大的界面之感想
  4. 线程基础知识_Synchronized_ThreadAPI_自定义锁_获取线程运行时异常
  5. CentOS7救援模式以及救援模式的网络配置
  6. K-Fold Cross Validation
  7. 编码基本功:遇到打印问题怎么办
  8. (原創) Verilog入門書籍推薦:Verilog數位電路設計範例寶典(基礎篇) (IC Design) (Verilog)...
  9. mysql取第二大_mysql – SQL:从一行列中获取第二大值
  10. 蚂蚁庄园 php源码,求一个基于Auto.js的蚂蚁庄园脚本
  11. java中编写一个学生抽奖活动_用java做的抽奖程序
  12. 利用JavaScript完成页面定时弹出广告
  13. linux内核将新驱动添加到menuconfig菜单
  14. 《路由器开发 - 路由器刷机指南》小米MINI刷机
  15. FPGA实现和ET1100通信verilog源码。 ethercat从站方案
  16. mac charles网页代理https使用笔记
  17. LSTM之父发文:2010-2020,我眼中的深度学习十年简史
  18. 02 | 论文中的「题目、目录、摘要和结论」应该怎么写?
  19. asp.net905-二次元网站系统#毕业设计
  20. sip协议之网络传输方式

热门文章

  1. 如何使用JdbcTemplate实现数据的增删改查?
  2. anaconda打开python文本编辑器_【python】anaconda中打开IDLE(python 自带编辑器)
  3. C++ tbb::atomic
  4. 图(一):图的邻接表表示
  5. serv u使用mysql数据库_Serv-u Mysql数据库用户
  6. MYSQL 存储过程和函数 案例 例子
  7. python获取url参数_python测试开发django(4)--获取url参数和name的作用
  8. mysql创建触发器怎么保存_如何创建使用mysql触发器?
  9. 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_14-MongoDb入门-文档...
  10. MongoDB 备份与恢复