连接和关闭资源工具类

做一个工具类,里面封装了两个方法,一个用来获得连接,一个用来关闭资源

package com.sjx.tool;

import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JDBCUtils {
    private static String driver;
    private static String url;
    private static String user;
    private static String password;

    static{

        try {
            //0读取配置文件
            Properties prop  = new Properties();

            InputStream is = new FileInputStream("src/db.properties");

            prop.load(is);

            is.close();

            driver = prop.getProperty("driver");
            url = prop.getProperty("url");
            user = prop.getProperty("user");
            password = prop.getProperty("password");

            //1 注册驱动
            Class.forName(driver);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    //1 获得连接
    public static Connection getConnection(){
        Connection conn = null;
        try {
            //2 获得连接
            conn = DriverManager.getConnection(url, user, password);
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("创建连接失败!");
        }

        return conn;
    }

    //2 释放资源
        //1> 参数可能为空
        //2> 调用close方法要抛出异常,确保即使出现异常也能继续关闭
        //3>关闭顺序,需要从小到大
    public  static void  close(Connection conn , Statement st , ResultSet rs){

        try {
            if(rs!=null){
                rs.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            try {
                if(st!=null){
                st.close();
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                try {
                    if(conn!=null){
                        conn.close();
                        }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

        }

    }

    public static void main(String[] args) {
        System.out.println(getConnection());  //本机安装的数据库能接受的连接数是极少的,所以少执行几次
    }
}
时间: 2024-08-08 22:01:32

连接和关闭资源工具类的相关文章

java关闭资源,自制关闭资源工具类

在网上看到一篇关于关闭资源的正确方式:http://blog.csdn.net/bornforit/article/details/6896775 该博文中的总结: (1)使用finally块来关闭物理资源(非托管资源),保证关闭操作始终会被执行: (2)关闭每个资源之前首先保证引用该资源的引用变量不为null: (3)为每个物理资源使用单独的trycatch块关闭资源,保证关闭资源时引发的异常不会影响其他资源的关闭. 在资源过多的时候,我们要在finally块中写很多的非空判断.以及try-c

数据库连接工具类——包含取得连接和关闭资源 ConnUtil.java

package com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * @className: ConnUtil.java * @classDescription: 数据库连接工具类——包含取得连接和关闭资源 * @fun

Android程序员必备精品资源 工具类

平时写程序中不断收集到的一些比较常用的东西,分享给大家. 实用工具集锦 Android Lifecycle https://github.com/xxv/android-lifecycle TinyPNG https://tinypng.com/ Android Layout Finder Android Layout Finder Android Asset Studio http://romannurik.github.io/AndroidAssetStudio/ JSON Validato

android连接服务器下载文件工具类

public static File downLoad(String serverPath,String savedPath,ProgressDialog dialog){ try { URL url=new URL(serverPath); HttpURLConnection _conn=(HttpURLConnection) url.openConnection(); _conn.setRequestMethod("GET"); _conn.setConnectTimeout(50

15 友盟项目--资源文件工具类(ResourceUtil)、sql执行工具类(ExecSQLUtil)

资源文件工具类把sql脚本转换为String字符串--->交给sql工具类ExecSQLUtil执行sql 1.资源文件工具类(ResourceUtil) 把sql脚本转换为String字符串 /** * 资源文件工具类 */ public class ResourceUtil { /** * 以String方式读取整个资源串 */ public static String readResourceAsString(String resource ,String charset) throws

项目经验分享——Java常用工具类集合 转

http://blog.csdn.net/xyw591238/article/details/51678525 写在前面 本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数据库连接.格式转换.文件操作.发送邮件等等.提高开发效率,欢迎收藏与转载. 数据库连接工具类 数据库连接工具类——仅仅获得连接对象 ConnDB.java [java] package com.util; import java.sql.Connection; import java.sql.DriverM

工具类涉及数据库连接、格式转换、文件操作、发送邮件等等

数据库连接工具类 数据库连接工具类——仅仅获得连接对象 ConnDB.javaimport java.sql.Connection; import java.sql.DriverManager; /** * 数据库连接工具类——仅仅获得连接对象 * */ public class ConnDB { private static Connection conn = null; private static final String DRIVER_NAME = "com.mysql.jdbc.Dri

android开发工具类总结(一)

一.日志工具类 Log.java 1 public class L 2 { 3 private L() 4 { 5 /* 不可被实例化 */ 6 throw new UnsupportedOperationException("Cannot be instantiated!"); 7 } 8 // 是否需要打印bug,可以在application的onCreate函数里面初始化 9 public static boolean isDebug = true; 10 private sta

史上最全的开发工具类

    API 银行卡管理 → BankCheck checkBankCard : 校验银行卡卡号是否合法 getBankCardCheckCode: 从不含校验位的银行卡卡号采用 Luhm 校验算法获得校验位 getNameOfBank : 通过银行卡的前六位确定判断银行开户行及卡种 SharePreference缓存数据 →AppSharePreferenceMgr put : 保存数据的方法 get : 获取数据的方法 putImage: 保存图片到SharedPreferences ge