Java-c3p0原生写法
目录
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原生写法相关推荐
- java原生封装_[Java教程]原生AJAX封装
[Java教程]原生AJAX封装 0 2016-07-12 13:00:08 回归下原生js,网上看到的AJAX封装,遂拿来改改,不知还有何弊端,望指出!1 var ajaxHelper = { 2 ...
- java文件异步上传_[Java教程]原生javascript实现文件异步上传
[Java教程]原生javascript实现文件异步上传 0 2017-10-25 19:00:06 效果图: 代码:(demo33.jsp) demo33.jsp名称文件确定 本文网址:http:/ ...
- Java单例模式优化写法
转载自 http://blog.csdn.net/diweikang/article/details/51354982 Java单例模式优化写法 方法一:推荐 [java] view plain co ...
- java 秒变成时间_使用Quarkus开发Java云原生应用
Java应用的云原生化痛点 Java技术栈作为企业级开发的利器已经发展了快二十多年,大家基于Java技术栈开发了大量的应用.随着云原生架构的普及,越来越多的用户开始使用容器技术来运行微服务应用程序.借 ...
- Android NDK开发篇(四):Java与原生代码通信(原生方法声明与定义与数据类型)
Java与原生代码通信涉及到原生方法声明与定义.数据类型.引用数据类型操作.NIO操作.訪问域.异常处理.原生线程 1.原生方法声明与定义 关于原生方法的声明与定义在上一篇已经讲一点了,这次具体分析一 ...
- php连接mysql原生_php链接mysql原生写法
php链接mysql原生写法 龙行 MySql 2018-11-9 2295 0评论 好久没用都忘了,网上找了个不用框架的原生写法,做个记录水水更健康 $mysql_conf ...
- 2023年最新微信小程序获取用户openid、头像昵称的填写能力和方法原生写法
大家好,下面是我身为小白分享给小白哈, 不懂就问相互学习共同进步! 亲测自用原生代码,感谢大神指点赐教鼓励勿喷: 只需9个一键复制粘贴步骤一气呵成: 先来本文最终主要实现效果: 获取微信小程序用户头像 ...
- 秒杀springboot——未来轻量级高性能的Java云原生微服务框架来啦
秒杀springboot--未来轻量级高性能的Java云原生微服务框架来啦 引子 自2003年Rod.Juergen 和 Yann开发并发布Spring项目后,J2EE 迎来了新的开始.在 2013 ...
- Java网络编程和NIO详解1:JAVA 中原生的 socket 通信机制
JAVA 中原生的 socket 通信机制 转载自:https://github.com/jasonGeng88/blog 当前环境 jdk == 1.8 知识点 socket 的连接处理 IO 输入 ...
- ajax的通用写法,ajax的jquery写法和原生写法
一.ajax的简介 Ajax被认为是(Asynchronous(异步) JavaScript And Xml的缩写).现在,允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax. 同步是指: ...
最新文章
- leetcode-20 valid-parentheses(有效的括号)
- 推荐10个腾讯系大佬!第一个从华为离职,写了2本畅销书!
- 简单读懂微生物基因组的泛基因组学
- 自动化监控--手动添加itme监控项详解
- 华为安卓转鸿蒙,坦白说,华为不用鸿蒙替换安卓,而用HMS替代GMS,是当前最好方案 - 区块网...
- PCL:关于pcd数据显示乱码
- 记录关于vs2008 和vs2015 的报错问题
- Mplayer 音频解码分析
- 编写C语言代码,实现以下功能:有N名学生,每个人的信息包括学号、姓名和语文、数学、英语、平均分等内容(用结构体表示 ),输出平均分排名倒数第2的学生信息。
- 2017.4.20 hanoi双塔问题 思考记录
- xshell 登录kail拒绝了密码 已解决
- HCIE Security 防火墙虚拟系统 备考笔记(幕布)
- 管家婆服务器备份文件夹,[任我行]管家婆软件的使用方法,管家婆辉煌提示备份报错3202...
- Arcgis(三)——重分类
- 知乎 ”大家都见过哪些让你虎躯一震的代码?“用户“李晨昊”回答的等价代码
- 指纹算法中控 X638考勤机编程(delphi)
- opencv——图像中关于轮廓的一些操作
- Automatic Inference of Search Patterns for Taint-Style Vulnerabilities
- mysql 备份锁表_mysqldump 备份数据说明+ 避免锁表
- 数读电商10年成就《这十年:2012-2022中国电子商务发展数据报告》
热门文章
- AI丨亚马逊将在加州欧文地区测试其自动送货机器人Scout
- springboot+Elasticsearch实现word,pdf,txt内容抽取并高亮分词全文检索
- R语言dbplyr包实现R与SQL语句无缝衔接
- 多测师肖sir_高级讲师_第2个月第17讲讲解接口面试题
- 如何用python更改图片的像素
- Wangle源码分析:Service
- 学习笔记(1):Java面试:核心考点突击大串讲-JavaSE开胃面试题介绍
- 收藏!2020上半年社区精华教程盘点
- java 检测表情符号_hutool工具包:判断一个字符串中是否包含emoji表情符号(emoji-java)...
- 在电脑上使用考研APP的方法(亲测有效)