java mysql数据库链接与资源关闭
Posted lightandtruth
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java mysql数据库链接与资源关闭相关的知识,希望对你有一定的参考价值。
/** * 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数据库链接与资源关闭的主要内容,如果未能解决你的问题,请参考以下文章
mysql 数据库中出现1040问题是怎么回事,在连接数据库的时候我写了关闭链接的,怎么还是会说链接过多
Python - pymysql链接MySQL数据库并进行简单操作