目录

1.项目整体结构

2.新建c3p0-config.xml文件

3.新建JDBCUtil工具类

4.数据库操作


简易版的c3p0连接。

1.项目整体结构

这里的两个c3p0jar包必须有。

可以去http://mvnrepository.com/搜索jar包名下载,别浪费积分去csdn里面下载了...小编以前被坑过很多次。

2.新建c3p0-config.xml文件

命名必须为c3p0-config.xml,

必须放在src目录下,c3p0包会默认加载src目录下的c3p0-config.xml文件。

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config><!-- 这是默认配置信息 --><default-config><!-- 连接四大参数配置 --><property name="jdbcUrl">jdbc:mysql://localhost:3306/jdbctest</property><property name="driverClass">com.mysql.jdbc.Driver</property><property name="user">root</property><property name="password">root</property><!-- 池参数配置 --><property name="acquireIncrement">3</property><property name="initialPoolSize">10</property><property name="minPoolSize">2</property><property name="maxPoolSize">10</property></default-config><!-- 专门为oracle提供的配置信息 --><named-config name="oracle-config"><property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb1</property><property name="driverClass">com.mysql.jdbc.Driver</property><property name="user">root</property><property name="password">123</property><property name="acquireIncrement">3</property><property name="initialPoolSize">10</property><property name="minPoolSize">2</property><property name="maxPoolSize">10</property></named-config>
</c3p0-config>

3.新建JDBCUtil工具类

package com.test.uitls;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;public class JDBCUtil {private static DataSource ds = new ComboPooledDataSource();// 获取连接池public static DataSource getDataSource() {return ds;}// 获取连接public static Connection getConnection() throws SQLException {return ds.getConnection();}/*** 关闭连接* @param resultSet* @param pst* @param connection*/public static void close(ResultSet resultSet, PreparedStatement pst, Connection connection) {if (resultSet != null) {try {resultSet.close();} catch (SQLException e) {e.printStackTrace();}}if (pst != null) {try {pst.close();} catch (SQLException e) {e.printStackTrace();}}if (connection != null) {try {connection.close();} catch (SQLException e) {e.printStackTrace();}}}}

4.数据库操作

package com.test.dao;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.test.uitls.JDBCUtil;public class JDBCDao {/***  * 增加,删除,修改  */public static void insertOrDeleteOrUpdate(String sql) {try {Connection connection = JDBCUtil.getConnection();PreparedStatement pst = connection.prepareStatement(sql);int execute = pst.executeUpdate();System.out.println("执行语句:" + sql + "," + execute + "行数据受影响");JDBCUtil.close(null, pst, connection);} catch (SQLException e) {System.out.println("异常提醒:" + e);}}/***  * 查询,返回结果集  */public static List<Map<String, Object>> select(String sql) {List<Map<String, Object>> returnResultToList = null;try {Connection connection = JDBCUtil.getConnection();PreparedStatement pst = connection.prepareStatement(sql);ResultSet resultSet = pst.executeQuery();
//  returnResultToList = returnResultToList(resultSet);JDBCUtil.close(resultSet, pst, connection);} catch (SQLException e) {System.out.println("异常提醒:" + e);}return returnResultToList;}/***  * 数据返回集合  * @param resultSet  * @return  * @throws SQLException  */public static List<Map<String, Object>> returnResultToList(ResultSet resultSet) {List<Map<String, Object>> values = null;try {// 键: 存放列的别名, 值: 存放列的值.values = new ArrayList<>();// 存放字段名List<String> columnName = new ArrayList<>();ResultSetMetaData rsmd = resultSet.getMetaData();for (int i = 0; i < rsmd.getColumnCount(); i++) {// 字段名columnName.add(rsmd.getColumnLabel(i + 1));}System.out.println("表字段为:");System.out.println(columnName);System.out.println("表数据为:");Map<String, Object> map = null;// 处理 ResultSet, 使用 while 循环while (resultSet.next()) {map = new HashMap<>();for (String column : columnName) {Object value = resultSet.getObject(column);map.put(column, value);System.out.print(value + "\t");}// 把一条记录的 Map 对象放入准备的 List 中values.add(map);System.out.println();}} catch (SQLException e) {System.out.println("异常提醒:" + e);}return values;}
}

Java-c3p0原生写法相关推荐

  1. java原生封装_[Java教程]原生AJAX封装

    [Java教程]原生AJAX封装 0 2016-07-12 13:00:08 回归下原生js,网上看到的AJAX封装,遂拿来改改,不知还有何弊端,望指出!1 var ajaxHelper = { 2 ...

  2. java文件异步上传_[Java教程]原生javascript实现文件异步上传

    [Java教程]原生javascript实现文件异步上传 0 2017-10-25 19:00:06 效果图: 代码:(demo33.jsp) demo33.jsp名称文件确定 本文网址:http:/ ...

  3. Java单例模式优化写法

    转载自 http://blog.csdn.net/diweikang/article/details/51354982 Java单例模式优化写法 方法一:推荐 [java] view plain co ...

  4. java 秒变成时间_使用Quarkus开发Java云原生应用

    Java应用的云原生化痛点 Java技术栈作为企业级开发的利器已经发展了快二十多年,大家基于Java技术栈开发了大量的应用.随着云原生架构的普及,越来越多的用户开始使用容器技术来运行微服务应用程序.借 ...

  5. Android NDK开发篇(四):Java与原生代码通信(原生方法声明与定义与数据类型)

    Java与原生代码通信涉及到原生方法声明与定义.数据类型.引用数据类型操作.NIO操作.訪问域.异常处理.原生线程 1.原生方法声明与定义 关于原生方法的声明与定义在上一篇已经讲一点了,这次具体分析一 ...

  6. php连接mysql原生_php链接mysql原生写法

    php链接mysql原生写法 龙行    MySql    2018-11-9    2295    0评论 好久没用都忘了,网上找了个不用框架的原生写法,做个记录水水更健康 $mysql_conf ...

  7. 2023年最新微信小程序获取用户openid、头像昵称的填写能力和方法原生写法

    大家好,下面是我身为小白分享给小白哈, 不懂就问相互学习共同进步! 亲测自用原生代码,感谢大神指点赐教鼓励勿喷: 只需9个一键复制粘贴步骤一气呵成: 先来本文最终主要实现效果: 获取微信小程序用户头像 ...

  8. 秒杀springboot——未来轻量级高性能的Java云原生微服务框架来啦

    秒杀springboot--未来轻量级高性能的Java云原生微服务框架来啦 引子 自2003年Rod.Juergen 和 Yann开发并发布Spring项目后,J2EE 迎来了新的开始.在 2013 ...

  9. Java网络编程和NIO详解1:JAVA 中原生的 socket 通信机制

    JAVA 中原生的 socket 通信机制 转载自:https://github.com/jasonGeng88/blog 当前环境 jdk == 1.8 知识点 socket 的连接处理 IO 输入 ...

  10. ajax的通用写法,ajax的jquery写法和原生写法

    一.ajax的简介 Ajax被认为是(Asynchronous(异步) JavaScript And Xml的缩写).现在,允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax. 同步是指: ...

最新文章

  1. leetcode-20 valid-parentheses(有效的括号)
  2. 推荐10个腾讯系大佬!第一个从华为离职,写了2本畅销书!
  3. 简单读懂微生物基因组的泛基因组学
  4. 自动化监控--手动添加itme监控项详解
  5. 华为安卓转鸿蒙,坦白说,华为不用鸿蒙替换安卓,而用HMS替代GMS,是当前最好方案 - 区块网...
  6. PCL:关于pcd数据显示乱码
  7. 记录关于vs2008 和vs2015 的报错问题
  8. Mplayer 音频解码分析
  9. 编写C语言代码,实现以下功能:有N名学生,每个人的信息包括学号、姓名和语文、数学、英语、平均分等内容(用结构体表示 ),输出平均分排名倒数第2的学生信息。
  10. 2017.4.20 hanoi双塔问题 思考记录
  11. xshell 登录kail拒绝了密码 已解决
  12. HCIE Security 防火墙虚拟系统 备考笔记(幕布)
  13. 管家婆服务器备份文件夹,[任我行]管家婆软件的使用方法,管家婆辉煌提示备份报错3202...
  14. Arcgis(三)——重分类
  15. 知乎 ”大家都见过哪些让你虎躯一震的代码?“用户“李晨昊”回答的等价代码
  16. 指纹算法中控 X638考勤机编程(delphi)
  17. opencv——图像中关于轮廓的一些操作
  18. Automatic Inference of Search Patterns for Taint-Style Vulnerabilities
  19. mysql 备份锁表_mysqldump 备份数据说明+ 避免锁表
  20. 数读电商10年成就《这十年:2012-2022中国电子商务发展数据报告》

热门文章

  1. AI丨亚马逊将在加州欧文地区测试其自动送货机器人Scout
  2. springboot+Elasticsearch实现word,pdf,txt内容抽取并高亮分词全文检索
  3. R语言dbplyr包实现R与SQL语句无缝衔接
  4. 多测师肖sir_高级讲师_第2个月第17讲讲解接口面试题
  5. 如何用python更改图片的像素
  6. Wangle源码分析:Service
  7. 学习笔记(1):Java面试:核心考点突击大串讲-JavaSE开胃面试题介绍
  8. 收藏!2020上半年社区精华教程盘点
  9. java 检测表情符号_hutool工具包:判断一个字符串中是否包含emoji表情符号(emoji-java)...
  10. 在电脑上使用考研APP的方法(亲测有效)