JDBC 连接DRUID 连接池!
一、1.创建一个floder目录,【名称lib】
2. 导入mysql.jar包和 druid.jar 包。---------->bulid path

二、创建 sourcefolder 目录!【sourcefloder】
将配置文件放到里面(这种类型的文件夹和普通文件夹不一样,sourcefloder文件夹能将里面的东西编译到输出目录,而普通文件夹不会编译)
展示配置文件

三、通过连接池来连接JDBC,更改Util工具中的 getConnection!

四、总的展示。
package com.aaa.util; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties; import javax.sql.DataSource; import com.alibaba.druid.pool.DruidDataSourceFactory; /**
* BaseDao 利用Druid连接池 连接数据库
*
* 通过连接池,不用每次都建立连接对象和关闭资源,节省资源。
* 需要
* 1.导入druid包
* 2.创建一个source floder文件夹 将配置文件 druid.properties 放在里面。
*/
public class BaseDAO { private static DataSource source=null;//注意这里是私有,静态变量。 static {//这里还是之前的加载驱动
Properties p = new Properties();
try {
//加载文件 得到一个 druid.properties 的文件。
p.load(BaseDAO.class.getClassLoader().getResourceAsStream("druid.properties")); //获取数据源
source=DruidDataSourceFactory.createDataSource(p); } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} //建立连接
public static Connection getConnetion() {
try {
//利用连接池连接对象
Connection con = source.getConnection();
return con;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
} // DML 增删改的通用
public static int exectueUpdate(String sql,Object...args) {
Connection con=null;
PreparedStatement ps=null; try {
con = BaseDAO.getConnetion();
ps=con.prepareStatement(sql); for (int i = 0; i < args.length; i++) {
ps.setObject(i+1, args[i]);
} int i = ps.executeUpdate(); return i; } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
if (ps!=null) {
ps.close();
}
if (con!=null) {
con.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} return 0;
} //DQL 查询的通用
public static List<Map<String, Object>> executeQuery(String sql,Object...args) {
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null; try {
con = BaseDAO.getConnetion(); //注意这里是用source 来调用 getConnetion ,不再是通过BaseDAO
ps = con.prepareStatement(sql); for (int i = 0; i < args.length; i++) {
ps.setObject(i+1, args[i]);
} rs = ps.executeQuery(); int count = rs.getMetaData().getColumnCount(); List<Map<String, Object>> list=new ArrayList<>();
while (rs.next()) {
Map<String, Object>map=new HashMap<>(); for (int i = 0; i < count; i++) {
Object values = rs.getObject(i+1);
String countName = rs.getMetaData().getColumnLabel(i+1);
map.put(countName, values);
} list.add(map); // System.out.println(list);
}
for (Map<String, Object> map : list) {
System.out.println(map);
} return list;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} return null;
}
}
JDBC 连接DRUID 连接池!的更多相关文章
- Spring整合JDBC和Druid连接池
我的博客名为黑客之谜,喜欢我的,或者喜欢未来的大神,点一波关注吧!顺便说一下,双十二快到了,祝大家双十二快乐,尽情的买买买~ 如果转载我的文章请标明出处和著名,谢谢配合. 我的博客地址为: https ...
- 常用的jdbc的Druid连接池配置
spring: datasource: username: root password: 888888 url: jdbc:mysql://localhost:3306/mybatis driver- ...
- Spring Boot (四): Druid 连接池密码加密与监控
在上一篇文章<Spring Boot (三): ORM 框架 JPA 与连接池 Hikari> 我们介绍了 JPA 与连接池 Hikari 的整合使用,在国内使用比较多的连接池还有一个是阿 ...
- java基础之JDBC八:Druid连接池的使用
基本使用代码: /** * Druid连接池及简单工具类的使用 */ public class Test{ public static void main(String[] args) { Conne ...
- druid连接池获取不到连接的一种情况
数据源一开始配置: jdbc.initialSize=1jdbc.minIdle=1jdbc.maxActive=5 程序运行一段时间后,执行查询抛如下异常: exception=org.mybati ...
- druid连接池配置
本人使用的是springMVC框架,以下是我的配置: step1,配置数据源(applicationContext-resource.xml中): <bean id="cc_ds&qu ...
- 使用druid连接池的超时回收机制排查连接泄露问题
在工程中使用了druid连接池,运行一段时间后系统出现异常: Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: ...
- Druid连接池
Druid 连接池简介 Druid首先是一个数据库连接池.Druid是目前最好的数据库连接池,在功能.性能.扩展性方面,都超过其他数据库连接池,包括DBCP.C3P0.BoneCP.Proxool.J ...
- 使用MyBatis集成阿里巴巴druid连接池(不使用spring)
在工作中发现mybatis默认的连接池POOLED,运行时间长了会报莫名其妙的连接失败错误.因此采用阿里巴巴的Druid数据源(码云链接 ,中文文档链接). mybatis更多数据源参考博客链接 . ...
随机推荐
- 【LeetCode】318. Maximum Product of Word Lengths 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 set 位运算 日期 题目地址:https://le ...
- Ubuntu mininet+Ryu环境安装
我们使用下载Ryu源代码进行那个安装 Ryu官方文档:http://ryu.readthedocs.io/en/latest/ Ryu电子书:http://osrg.github.io/ryu/res ...
- 源码分析 SpringCloud 2020.0.4 版本 EurekaClient 的注册过程
1. 概述 老话说的好:要善于思考,有创新意识. 言归正传,之前聊了 Springboot 的启动过程,今天来聊聊 Eureka Client 的注册过程. 2. Eureka Client 的注册过 ...
- CS5213demoboard设计电路|DMI转VGA带II2S音频输出转接线|CS5213方案
CS5213是台湾CAPSTONE瑞奇达推出的一款HDMI(高清多媒体接口)到VGA转换芯片. CS5213设计HDMI转VGA带II2S转接线产品特性: ◇将完整的HDMI信号转换为VGA输出◇支持 ...
- Spring企业级程序设计作业目录(作业笔记)
Spring企业级程序设计 • [目录] 第1章 Spring之旅 >>> 1.1.6 使用Eclipse搭建的Spring开发环境,使用set注入方式为Bean对象注入属性值并打 ...
- 新环境chart包helmlint校验
在iot目录内可以执行helm lint iot-api 去校验
- POJ 2442 Sequence堆 优先队列
题目描述 给定m个序列,每个序列包含n个非负整数.现在我们可以从每个序列中选择一个数字以形成一个具有m个整数的序列.显然,我们可以得到n ^ m种这种序列.然后,我们可以计算每个序列中的数字总和,并获 ...
- Selenium_使用switch_to.frame处理网页框架切换(13)
与在新窗口打开一个网页后需要切换窗口才能定位元素一样,在iframe标签中的元素也不能直接定位,需要切换到对应的iframe框架中才能进行元素定位. 完成网页框架切换操作需要用selenium中的两个 ...
- Appium之xpath定位详解
前面也说过appium也是以webdriver为基的,对于元素的定位也基本一致,只是增加一些更适合移动平台的独特方式,下面将着重介绍xpath方法,这应该是UI层元素定位最强大的方法啦! 以淘宝app ...
- pymysql防止SQL注入的方法
import pymysql class Db(object): def __init__(self): self.conn = pymysql.connect(host="192.168. ...