JDBC工具类

   将JDBC开发中需要经常用到的部分进行封装,比如加载驱动、连接、释放资源等封装成一个工具类。

配置文件:config.properties
database.driver=com.mysql.jdbc.Driver
database.url=jdbc:mysql://127.0.0.1:3306/jdbcdb
database.user=root
database.password=""

将参数写到配置文件中,程序会有更加好的移植性,以后要将程序从一种数据库移植到另一种数据库,只需要修改配置文件就可以了。程序不需要改动。


读取配置文件的程序如下:
package util;
import java.io.IOException;
import java.util.Properties;

public class ConfigUtil {
    private static Properties p = new Properties();
     //用静态代码块 
    static{
        try {
          p.load(ClassLoader.getSystemResourceAsStream(
                 "config.properties"));
        } catch (IOException e) {
	 e.printStackTrace();
        }
      }
	
    public static String getDriver(){
	return p.getProperty("database.driver");
    }
	
    public static String getUrl(){
	return p.getProperty("database.url");
    }
	
    public static String getUser(){
	return p.getProperty("database.user");
    }
	
    public static String getPwd(){
	return p.getProperty("database.pwd");
    }	
}


JDBC工具类:
package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 封装重用代码
 * 获取Jdbc连接,释放资源
 * @author Administrator
 *
 */
public class JdbcUtil {
	static {
		try {
		//加载驱动	
                    Class.forName(ConfigUtil.getDriver());
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	public static Connection getConnection(){
		Connection conn = null;
		String url = ConfigUtil.getUrl();//获取URL
		String user = ConfigUtil.getUser();//获取登录名
		String pwd = ConfigUtil.getPwd();//获取登录密码
		try {
                    //连接数据库
		conn = DriverManager.getConnection(url,user,pwd);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}
	//释放资源
	public static void release(Object o){
		if (o == null){
			return;
		}
		if (o instanceof ResultSet){
			try {
				((ResultSet)o).close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if(o instanceof Statement){
			try {
				((Statement)o).close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if (o instanceof Connection){
			Connection c = (Connection)o;
			try {
				if (!c.isClosed()){
					c.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
	}
	
         public static void release(ResultSet rs, Statement stmt, 
                             Connection conn){
		release(rs);
		release(stmt);
		release(conn);
	}
}

你可能感兴趣的:(java,sql,c,mysql,jdbc)