/**
* Created by Clear on 2018/8/11.
* here provide the kind of connections from mysql database,and close the resources of the mysql
* there are
* load driver
* use properties file
* use xml file
* use tomcat
* and... so on
*
*
*
*/
public class MysqlUtil {
/**
* 链接数据库
*/
/**
* 方法一:
* 加载驱动的方法不止一种,但这种最常用
*/
public static Connection getConnectionOne(String database,String username,String password){
try {
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/"+database,username,
password);
return connection;
}catch(Exception e){
e.printStackTrace();
}
return null;
}
/**
* 方法二:
* 利用properties文件
* ::::: 在Web 编程时 文件难以定位
*/
public static Connection getConnectionTwo() {
/**
* 建立文件
*/
Properties pro = new Properties(); InputStream in = MysqlUtil.class.getClassLoader().getResourceAsStream("mysqllog.properties");
try {
pro.load(in);
Class.forName(pro.getProperty("driver"));
String username = pro.getProperty("user");
String password = pro.getProperty("password");
String database = pro.getProperty("database");
String url = pro.getProperty("url"); Connection connection = DriverManager.getConnection(url+database,username,password);
return connection;
} catch (Exception e) {
e.printStackTrace();
} return null;
}
// Connection ,Statement, ResultSet 这几个资源的关闭是有顺序的
public static void close (Object...objects) throws MysqlCloseException {
Map<String,Object> map = new HashMap();
for(Object o : objects){
if(o instanceof ResultSet){
map.put("ResultSet",o);
}else if(o instanceof Connection){
map.put("Connection",o);
}else if(o instanceof Statement){
map.put("Statement",o);
}else if(o instanceof PreparedStatement){
map.put("PreparedStatement",o);
}else{
throw new MysqlCloseException("关闭异常,不能处理");
}
}
Object obj = map.get("ResultSet");
if(obj!=null){
ResultSet r = (ResultSet)obj;
try {
r.close();
map.remove("ResultSet");
} catch (SQLException e) {
e.printStackTrace();
}
}
obj = map.get("PreparedStatement");
if(obj!=null){
PreparedStatement p = (PreparedStatement)obj;
try {
p.close();
map.remove("PreparedStatement");
} catch (SQLException e) {
e.printStackTrace();
}
}
obj = map.get("Statement");
if(obj!=null){
Statement s = (Statement)obj;
try {
s.close();
map.remove("Statement");
} catch (SQLException e) {
e.printStackTrace();
}
}
obj = map.get("Connection");
if(obj!=null){
Connection c = (Connection)obj;
try{
c.close();
map.remove("Connection");
}catch(SQLException e){
e.printStackTrace();
}
}
}
}

java mysql数据库链接与资源关闭的更多相关文章

  1. Java JDBC 数据库链接小结随笔

    Java JDBC 数据库链接小结随笔 一.链接数据库的步骤 二.关于Statement  和  PrepareStatement 两者区别 用法 三.关于 ResultSet 的一些小结 四.自定义 ...

  2. Mysql数据库的打开和关闭

    Mysql数据库的打开和关闭: 选择计算机(win7)-右键管理 在新窗口选择--服务 5 找到mysql,然后右键-启动(停止)

  3. Java JDBC数据库链接

    好久没有编写有关数据库应用程序啦,这里回顾一下java JDBC. 1.使用Java JDBC操作数据库一般需要6步: (1)建立JDBC桥接器,加载数据库驱动: (2)连接数据库,获得Connect ...

  4. Windows下MySQL数据库的安装与关闭开机自启动

    我在学习java,安装数据库时找了很多教程,现在在这里总结一下我安装数据库的过程,我安装的是mysql-5.6.42-winx64版本的. 数据官方下载地址:https://dev.mysql.com ...

  5. SpringBoot-(8)-配置MySQL数据库链接,配置数据坚挺拦截,创建默认数据表

    一,链接mysql数据库 # 数据源基本配置 spring.datasource.username=root spring.datasource.password=123456 spring.data ...

  6. django用MySQL数据库链接

    在使用的过程中出现了没有mysqld.sock这个文件的情况,无法连接到mysql数据库. 几经周折,设置路径,改文件夹的权限,也都无济于事,只有重新安装mysql服务器,第一次尝试还是失败,服务器安 ...

  7. java mysql 数据库

    1. jdbc 驱动名还是数据库 String driver = "com.mysql.jdbc.Driver"; //URL指向要访问的数据库名mydataString url ...

  8. Java之MySql数据库链接

    一 下载MySql驱动包,下载途径很多,随便Google或度娘一下就有,我下载的是mysql-connector-java-5.1.26版本,下载后把它解压到指定路径 二 在Eclipse中新建项目T ...

  9. mysql数据库链接与创建

    有童鞋问到说,环境搭建好了,mysql也安装了,但是就是进不去数据库,也启动不了,一直报错,那么下面这边就说下如何用Navicat链接上创建的数据库 首先 1)在xshell里进入mysql,命令是: ...

随机推荐

  1. bind 笔记

    BIND 的安装和配置: dns 服务,程序包名为bind ,程序名称为named 只需要安装 bind ,bind-libs ,bind-utils 生产环境全部安装 bind 服务脚本 :/etc ...

  2. opencv学习之路(26)、轮廓查找与绘制(五)——最小外接矩形

    一.简介 二.轮廓最小外接矩形的绘制 #include "opencv2/opencv.hpp" using namespace cv; void main() { //轮廓最小外 ...

  3. onsubmit 事件

    onsubmit 事件 Event 对象 定义和用法 onsubmit 事件会在表单中的确认按钮被点击时发生. 语法 onsubmit="SomeJavaScriptCode" 参 ...

  4. 原生JS实现简易转盘抽奖

    我爱撸码,撸码使我感到快乐. 大家好,我是Counter. 本章带大家来简单的了解下原生JS实现转盘抽奖. 因为主要涉及到JS,在这里HTML和CSS起到的功能就没有那么重要, 因此,没有过多的阐述H ...

  5. GIT 私有仓库 github项目提交失败 master -> master (non-fast-forward)

    https://blog.csdn.net/fightingforcv/article/details/52073182 https://blog.csdn.net/u014135752/articl ...

  6. newcoder 小A的柱状图(单调栈)题解

    题目描述 柱状图是有一些宽度相等的矩形下端对齐以后横向排列的图形,但是小A的柱状图却不是一个规范的柱状图,它的每个矩形下端的宽度可以是不相同的一些整数,分别为a[i] 每个矩形的高度是h[i] ,现在 ...

  7. 使用vue.js + laravel开发单页面应用

    最近学了vuejs和laravel,然后顺便就撸了简单的demo,这里将会根据这个demo介绍下如何使用vuejs+laravel开发一个简单的单页面应用,demo的github地址是https:// ...

  8. zookeeper之 zkServer.sh命令、zkCli.sh命令、四字命令

    一.zkServer.sh 1.查看 zkServer.sh 帮助信息[root@bigdata05 bin]# ./zkServer.sh helpZooKeeper JMX enabled by ...

  9. 【四】jquery之文档处理习题(内部处理、外部处理)[移动节点]

    参考资料:http://jquery.cuishifeng.cn/index.html 代码: <!DOCTYPE html> <html> <head> < ...

  10. Eclipse的Outline功能栏调出来

    window-->Shoe View -->Outline 按住鼠标左键拖一下Outline功能栏,就可以无论开哪个项目都能够在右边显示Outline功能栏 转载地址:https://bl ...