?? connectionmanager.java
字號(hào):
package myshop.db;
import java.sql.*;
/**
* 數(shù)據(jù)庫連接控制類。通過訪問靜態(tài)方法獲得數(shù)據(jù)庫連接
*/
public abstract class ConnectionManager {
/** 獲得連接池連接 */
public static final int TYPE_POOLED = 0;
/** 獲得直接物理連接 */
public static final int TYPE_DIRECT = 1;
/** 私有空構(gòu)造方法。保證本類不能夠被實(shí)例化 */
private ConnectionManager() {
}
/**
* 獲得默認(rèn)連接方式的數(shù)據(jù)庫連接。目前默認(rèn)為物理連接。
* @return Connection 數(shù)據(jù)庫連接
*/
public static Connection getConnection() {
return getConnection(TYPE_DIRECT);
}
/**
* 獲得指定連接方式的數(shù)據(jù)庫連接
* @param type int 連接方式 <br/>
* ConnectionManager.TYPE_POOLED 數(shù)據(jù)庫連接池連接 <br/>
* ConnectionManager.TYPE_DIRECT 直接物理連接
* @return Connection 數(shù)據(jù)庫連接
*/
public static Connection getConnection(int type) {
Connection conn = null;
switch (type) {
case TYPE_DIRECT:
try {
// 定義JDBC驅(qū)動(dòng)程序
String driverName = "org.gjt.mm.mysql.Driver"; // MySQL JDBC 驅(qū)動(dòng)程序名稱
Class.forName(driverName);
// 數(shù)據(jù)庫連接參數(shù)。指定采用中文編碼方式連接數(shù)據(jù)庫
String serverName = "localhost"; // 數(shù)據(jù)庫主機(jī)名稱
String mydatabase = "my_shop"; // 數(shù)據(jù)庫名稱
// 連接url。指定連接方式為GBK編碼
String url = "jdbc:mysql://" + serverName + "/" +
mydatabase +
"?useUnicode=true&characterEncoding=GBK";
String username = "root"; // 連接用戶名
String password = "111111"; // 連接密碼
// 獲得數(shù)據(jù)庫連接
conn = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
// 不能夠找到所需類
e.printStackTrace();
} catch (SQLException e) {
// 獲得數(shù)據(jù)庫連接發(fā)生異常
e.printStackTrace();
}
break;
case TYPE_POOLED:
throw new UnsupportedOperationException("Now Unsupported.");
}
return conn;
}
/**
* 關(guān)閉數(shù)據(jù)庫連接
* @param conn Connection 需要被關(guān)閉的數(shù)據(jù)庫連接
*/
public static void closeConnection(Connection conn) {
if (conn != null) { //連接是否有效
try {
if (!conn.isClosed()) { //連接是否已關(guān)閉
conn.close(); //關(guān)閉連接
}
} catch (SQLException ex1) {
ex1.printStackTrace();
}
}
}
/**
* 主方法。用于檢測本類工作是否正常
* @param args String[] 運(yùn)行時(shí)參數(shù)
*/
public static void main(String[] args) {
Connection conn = null;
try {
conn = ConnectionManager.getConnection();
if (conn == null) {
System.out.println("獲得數(shù)據(jù)庫連接錯(cuò)誤.");
} else {
System.out.println("正常獲得數(shù)據(jù)庫連接 == " + conn);
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
closeConnection(conn);
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -