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数据库连接Demo1的更多相关文章

  1. java MySQl数据库连接

    <%@ page import="java.sql.Connection" %> <%@ page import="java.sql.DriverMan ...

  2. mysql数据库连接出问题,提示超时 java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.解决办法

    mysql数据库连接出问题,提示超时,后来发现问题在于连接mysql数据库的jar包跟数据库版本不对应导致的,更换jar包一致就解决了.

  3. 一个简单的MySql数据库连接池的实现

    package cn.hc.connectionPool; import java.io.IOException; import java.io.InputStream; import java.sq ...

  4. Java jdbc数据库连接池总结!(转)

    1. 引言 近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,计算机 应用程序已从传统的桌面应用转到Web应用.基于B/S(Browser/Server)架构的 ...

  5. mysql数据库连接池使用(三)数据库元数据信息反射数据库获取数据库信息

    1.1. mysql数据库连接池使用(三)数据库元数据信息反射数据库获取数据库信息 有时候我们想要获取到数据库的基本信息,当前程序连接的那个数据库,数据库的版本信息,数据库中有哪些表,表中都有什么字段 ...

  6. node+mysql 数据库连接池

    1. 什么是数据库连接池? 数据库连接池是程序启动时建立足够的数据库连接,并将这些连接组成一个池,由程序动态地对池中的连接进行申请,使用和释放. 2. 使用数据库连接池原理及优点是什么? 数据库连接池 ...

  7. DotNet,PHP,Java的数据库连接代码大全(带演示代码)

    C#数据库连接字符串 Web.config文件 <connectionStrings> <!--SQLServer数据库连接--> <add name="con ...

  8. SpringBoot15 sell01 项目创建、MySQL数据库连接、日志配置、开发热部署、商品信息模块

    项目软件版本说明: jdk: 1.8 springboot: 2.0.1 mysql: 5.7 1 项目创建 创建一个SpringBoot项目即可,创建是勾选 web jpa mysql 这三个依赖就 ...

  9. MySQL数据库连接报错

    数据库版本8.x和其他版本配置有区别: 1. 驱动依赖和连接 报错: Could not create connection to database server - java mysql conne ...

随机推荐

  1. Druid 连接池

    记录Druid 连接池简单用法 package Utils; import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.sq ...

  2. 《python开发技术详解》|百度网盘免费下载|Python开发入门篇

    <python开发技术详解>|百度网盘免费下载|Python开发入门篇 提取码:2sby  内容简介 Python是目前最流行的动态脚本语言之一.本书共27章,由浅入深.全面系统地介绍了利 ...

  3. circle踢人(约瑟夫环) c++

    这里更新指针法,真的每句都是坑 (寥寥数十句,句句都是坑) // // Created by snnnow on 2020/4/12. //question:转圈,一共N个人,数到M的出列,求最后一个 ...

  4. day19:os模块&shutil模块&tarfile模块

    os模块:对系统进行操作(6+3) system  popen  listdir  getcwd  chdir  environ / name  sep  linesep import os #### ...

  5. JavaScript 你真的了解this指向吗

    JavaScript 你真的了解this指向吗 前言 终于开始写this指向了,相信这对很多JavaScript的学习者来说是一个非常恐怖的环节,个人认为也算是JavaScript中最难理解的一个知识 ...

  6. 埋在MySQL数据库应用中的17个关键问题!

    作者:扎瓦陈序元 来源:https://blog.csdn.net/weixin_42882439 MySQL的使用非常普遍,跟MySQL有关的话题也非常多,如性能优化.高可用性.强一致性.安全.备份 ...

  7. 笨办法学python3练习代码ex21.py

    def add(a, b): print(f"ADDING {a} + {b}") return (a + b) def subtract(a, b): #subtract :减去 ...

  8. (恐怕是)写得最通俗易懂的一篇关于HashMap的文章——xx大佬这样说

    先看再点赞,给自己一点思考的时间,微信搜索[沉默王二]关注这个有颜值却假装靠才华苟且的程序员. 本文 GitHub github.com/itwanger 已收录,里面还有一线大厂整理的面试题,以及我 ...

  9. 如何查看Docker容器环境变量,如何向容器传递环境变量

    1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! 了解Docker容器的运行环境非常重要,我们把应用放在容器里执行,环境变量会直接影响程序的执行效果.所以我们要知道容器内部的 ...

  10. JSP中contentType、pageEncoding和meta charset的区别

    1.创建JSP 使用Eclipse创建JSP文件: <%@ page language="java" contentType="text/html; charset ...