自己整理的一个JDBC驱动,方便以后离开框架直接测试,在mysql下测试通过,下面是源码:
package com.lzb.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
*
* 功能描述:jdbc数据库连接池
*
* @author lizhenin
*
* <p>修改历史:(修改人,修改时间,修改原因/内容)</p>
*/
public class JDBCUtil {
public static final String ORACLE = "ORACLE";
public static final String MYSQL = "MYSQL";
public static final String SQLSERVER = "SQLSERVER";
public static final String ORACLE_DRIVER = "oracle.jdbc.driver.OracleDriver";
public static final String MYSQL_DRIVER = "com.mysql.jdbc.Driver";
public static final String SQLSERVER_DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
private static JDBCUtil instance = null;
/**
*
* 构造函数:
*
*/
public JDBCUtil() {}
/**
*
* 功能描述:返回JDBCUtil单例模式
*
* @author lizhenbin
* <p>创建日期 :2012-2-8 上午10:55:21</p>
*
* @return
*
* <p>修改历史 :(修改人,修改时间,修改原因/内容)</p>
*/
public static synchronized JDBCUtil getInstance() {
if (instance == null)
instance = new JDBCUtil();
return instance;
}
/**
*
* 功能描述:获取数据库连接对象
*
* @author lizhenbin
* <p>创建日期 :2012-2-8 上午10:25:14</p>
*
* @param dbName
* 数据库名称 eg JDBCUtil.ORACLE, JDBCUtil.MYSQL...
* @param dbUser
* 连接数据的用户名
* @param pwd
* 连接数据库密码
* @param port
* 连接数据库端口
* @param sid
* 连接数据库的sid
* @param url
* 连接数据url
* @return
* 连接数据库Connection对象
*
* <p>修改历史 :(修改人,修改时间,修改原因/内容)</p>
*/
public static Connection getConnection(String dbName, String dbUser, String pwd,
String url, String port, String sid) {
String connUrl = null;
if (dbName!=null && pwd!=null && port!=null && sid!=null && url!=null) {
if(dbName.equals(JDBCUtil.ORACLE)) {
try {
Class.forName(JDBCUtil.ORACLE_DRIVER);
connUrl = "jdbc:oracle:thin:@"+url+":"+port+":"+sid;
} catch (Exception e) {
e.printStackTrace();
}
}else if(dbName.equals(JDBCUtil.MYSQL)) {
try {
Class.forName(JDBCUtil.ORACLE_DRIVER);
connUrl = "jdbc:mysql://"+url+":"+port+"/"+sid;
} catch (Exception e) {
e.printStackTrace();
}
}else if(dbName.equals(JDBCUtil.SQLSERVER)) {
try {
Class.forName(JDBCUtil.SQLSERVER_DRIVER);
connUrl = "jdbc:microsoft:sqlserver://"+url+":"+port+";DatabaseName="+sid;
} catch (Exception e) {
e.printStackTrace();
}
}else{
return null; // 传入的参数不符合
}
try {
//System.out.println(connUrl);
return (DriverManager.getConnection(connUrl, dbUser, pwd));
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
return null;
}
/**
*
* 功能描述:获取执行sql对象
*
* @author lizhenbin
* <p>创建日期 :2012-2-8 上午11:29:48</p>
*
* @param conn
* 连接数据库对象
* @return
* Statement对象
*
* <p>修改历史 :(修改人,修改时间,修改原因/内容)</p>
*/
public static Statement getStatement (Connection conn) {
if (conn==null) {
System.out.println("Connection is null.");
return null;
}
try {
return conn.createStatement();
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
/**
*
* 功能描述:获取查询结果集合
*
* @author lizhenbin
* <p>创建日期 :2012-2-8 下午2:23:56</p>
*
* @param stmt
* 连接数据库接口类
* @param sql
* 执行sql语句
* @return
* ResultSet对象
*
* <p>修改历史 :(修改人,修改时间,修改原因/内容)</p>
*/
public static ResultSet getResultSet(Statement stmt, String sql) {
if(stmt==null) {
System.out.println("Statement is null!");
return null;
}
if(sql==null) {
System.out.println("sql str is null!");
return null;
}
try {
return stmt.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
/**
*
* 功能描述:释放资源
*
* @author lizhenbin
* <p>创建日期 :2012-2-8 下午2:28:12</p>
*
* @param rs
* @param stmt
* @param conn
*
* <p>修改历史 :(修改人,修改时间,修改原因/内容)</p>
*/
public static void release(ResultSet rs, Statement stmt, Connection conn) {
if(rs != null) {
try {
rs.close();
} catch (SQLException e) {
System.out.println("ResultSet close failure.");
e.printStackTrace();
}
}
if(stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
System.out.println("Statement close failure.");
e.printStackTrace();
}
}
if(conn != null) {
try {
conn.close();
} catch (SQLException e) {
System.out.println("Connection close failure.");
e.printStackTrace();
}
}
}
}