读取配置文件连接MySQL数据库

先确认已经导入了 mysql 的驱动包

db.properties

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/v20?useUnicode=true&characterEncoding=utf8

username=root

password=123456

JdbcUtil.java

package com.stu_mvc.utils;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.util.Properties;

public class JdbcUtil {

private static String CLASS_DRIVER = "";

private static String URL = "";

private static String USERNAME = "";

private static String PASSWORD = "";

static {

Properties properties = new Properties();

try {

//读取上面的配置文件

properties.load(JdbcUtil.class.getResourceAsStream("/db.properties"));

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

CLASS_DRIVER = properties.getProperty("driver");

URL = properties.getProperty("url");

USERNAME = properties.getProperty("username");

PASSWORD = properties.getProperty("password");

try {

Class.forName(CLASS_DRIVER);

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

/**

*getConn()

*获取conn

*/

public static Connection getConn() {

Connection conn = null;

try {

conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);

} catch (SQLException e) {

e.printStackTrace();

}

return conn;

}

/**

* 利用泛型改进释放资源 rs,st,conn

*/

public static void closeAll(T... autos) {

for (AutoCloseable t : autos) {

if (t != null) {

try {

t.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

}

使用 c3p0数据库连接池连接MySQL

普通的数据库连接创建的缺点:

用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。

数据库连接池概念

所谓数据库连接池,可以看作 :在用户和数据库之间创建一个”池”,这个池中有若干个连接对象,当用户想要连接数据库,就要先从连接池中获取连接对象,然后操作数据库。一旦连接池中的连接对象被拿光了,下一个想要操作数据库的用户必须等待,等待其他用户释放连接对象,把它放回连接池中,这时候等待的用户才能获取连接对象,从而操作数据库。

下载C3P0工具包

C3P0工具包包含的版本:

c3p0-0.9.5.2

mchange-commons-java-0.2.11

c3p0-config.xml 的配置

**注意: ** xml 配置文件的名称必须是:c3p0-config.xml ,也是放在src 目录下

​这里的 jdbcUrl 比较容易出问题,要是出现问题,建议仔细找找。

com.mysql.jdbc.Driver

jdbc:mysql:///v20

root

123456

JdbcUtil.java

写一个封装的工具类,开发起来还不是美滋滋!

package com.register_mvc.utils;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.util.Properties;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import com.mchange.v2.c3p0.impl.DbAuth;

public class JdbcUtil {

// 创建 c3p0 连接池对象

static ComboPooledDataSource dataSource = new ComboPooledDataSource("v20");

//创建一个 ThreadLocal

static ThreadLocal th = new ThreadLocal();

/**

*getConn()

*获取conn

*/

public static Connection getConn() {

// 从连接池中获取连接

// 先从 th 中获取,如果为空再到连接池中获取

Connection conn = th.get();

if (conn == null) {

try {

//把 获取的conn 存到 ThreadLocal 中

// ThreadLocal 内部有个map

// 通过当前的 线程 作为 key value 是存的内容

// 统一线程 key一致 value值 肯定一致

conn = dataSource.getConnection();

//把 conn存到th中

th.set(conn);

} catch (SQLException e) {

e.printStackTrace();

}

}

return conn;

}

/**

* 利用泛型方法释放资源 rs,st,conn

*/

public static void closeAll(T... autos) {

for (AutoCloseable t : autos) {

if (t != null) {

try {

t.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

}

c3p0 0.9.1.2 配套mysql_连接数据库,使用c3p0技术连接MySQL数据库相关推荐

  1. php 查看mysql连接数据库_php基础之连接mysql数据库和查询数据

    php基础之连接mysql数据库和查询数据 文章主要介绍了php连接mysql数据库和查询数据的方法和示例,需要的朋友可以参考下,就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕 ...

  2. php连接数据库语言,PHP语言连接MYSQL数据库实例代码

    本文主要向大家介绍了PHP语言连接MYSQL数据库实例代码,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. 现在做的项目需要php连接mysql数据库,虽然之前学过,但是现在基本上都给忘 ...

  3. lua连接数据库之luasql ------ luasql连接mysql数据库 及 luasql源码编译

    lua连接数据库不只luasql这个库,但目前更新最快的的貌似是这个luasql,他是开源的,支持的数据库功能如下: Connect to ODBC, ADO, Oracle, MySQL, SQLi ...

  4. asp 连接mysql_如何在ASP中连接MySQL数据库

    ASP和MySQL连接目前有两种办法:一个是使用组件,比较有名是MySQLX,可惜要99美元.二就是使用MyODBC 来连接,下面我们就来看看第二种方式. 试验的平台: MySQL 4.0 For R ...

  5. mysql连接数据库的包_java连接mysql数据库包

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  6. python怎么连接数据库_python3.x怎么连接mysql数据库

    第三步连接mysql数据库之后,就可以通过sql语句来读取数据库内容了,完整代码如下: import pymysql.cursor # 连接MySQL数据库 connection = pymysql. ...

  7. cakephp mysql_攻克CakePHP系列一 连接MySQL数据库

    接下来将一步一步对这个框架进行说明. 首先是下载框架 官方主页:http://cakephp.org/ 下载地址:http://cakeforge.org/frs/?group_id=23&r ...

  8. python用django连接mysql_三分钟了解Django如何连接Mysql数据库

    处理用户注册请求.Django连接MysqL数据库相关配置.数据库迁移命令: my_Dproject/app01/views.py    在views函数文件中添加register函数,来处理用户注册 ...

  9. pydev集成mysql_【Python】Windows平台下Python、Pydev连接Mysql数据库

    Mysql数据库是跨平台的,不是说Python一定就要连接Mongodb. Python连接Mysql数据库是非常easy的. 首先,你要配置好Python的开发环境,详见<[Python]Wi ...

最新文章

  1. CommonsMultipartFile 转为 File 类型
  2. 从十个方面提升SharePoint网站性能
  3. Codeforces 976F
  4. hadoop3.0.0 源码阅读之一:IPC Client部分
  5. HDU 2818 Building Block
  6. 使用xfire webservice接口开发,obj与xml相互转换好用工具类,不需要写大量的转换代码,亲测可用
  7. 漫步数学分析二十六——积分方程与不动点
  8. 报错,Error in created hook: “SyntaxError: Unexpected token o in JSON at position 1“
  9. 把github转至gitee
  10. 通向财务自由之路01_导读
  11. 【M1芯片兼容】MP3 Audio Recorder for Mac - MP3录音工具
  12. 人生苦短我用python(02)动态加载模块
  13. spss入门——简单的数据预处理到时间序列分析系列(一)
  14. 微信如何创建自己的小程序?
  15. PRML读书会第五章 Neural Networks(神经网络、BP误差后向传播链式求导法则、正则化、卷积网络)...
  16. filezilla,怎么下载filezilla
  17. C语言 switch多分支语句实现根据等级划分分数段
  18. 63 Three.js 将多个网格合并成一个网格
  19. 微信开发系列之自定义菜单实现
  20. luoguP3600 随机数生成器概率与期望Dp

热门文章

  1. 产品经理经验谈100篇(四)-B端交互设计规范
  2. 在地图上 添加柱状_如何做出一份惊艳的PPT地图页?这2个字,你一定要知道!...
  3. qt linux webservice,Qt实现访问WebService
  4. 解决 There are no resources that can be added or removed from the server
  5. 计算机考研数学基础知识点,2019计算机考研数学复习:打好基础是必须的啊喂!...
  6. fastd java下载_FastReport VCL报表控件
  7. JAVA确定这天是这年的某一天_[Java] 练习题014: 输入某年某月某日,判断这一天是这一年的第几天?...
  8. HTML5常用标签及特殊字符表
  9. 开发微信小程序中SSL协议的申请、证书绑定、TLS 版本处理等
  10. js正则验证方法大全