java連線MySQL資料庫DB類底層框架程式碼實現
阿新 • • 發佈:2019-01-04
前言:用java連線MySQL資料庫程式碼都是十分固定的,所以直接將一些固定的程式碼寫在一個DBmanager類中可以省去許多重複的工作,連線不同MySQL資料庫只需改變user和password即可。為了方便大家,我已經將程式碼總結出來。
程式碼塊
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/*
* 該類實現JDBC的封裝,主要實現程式碼的重用
* 核心是類的抽象過程(成員變數,成員方法),
* 資料庫的訪問步驟:
* (1)載入驅動,建立連線,建立語句物件(封裝在構造方法中)
* (2)對於insert,delete,update之類的操作,返回受影響的記錄條數
* 若>0,則表示操作成功,否則表示操作失敗,需要實現一個方法
* (3)對於select的操作,返回的是查詢到的記錄集,需要實現一個方法
* (4)對資料庫連線物件的關閉,以釋放資源,如果資源不及時的釋放,系統將會出現
* “out of memory”的錯誤,導致系統奔潰
*
*/
public class DBManager {
//成員的成員變數
private Connection con;
private Statement stm;
private ResultSet rs;
//以下為封裝的成員方法
/*
* 1.構造方法,實現載入驅動,建立連線,建立語句物件
*/
public DBManager(){
try {
// 1.載入驅動
String driverName = "com.mysql.jdbc.Driver"; // mysql
// jdbc驅動描述符,實際上就是driver類在包中的完整路徑
Class.forName(driverName);
// 2.建立與資料庫的連線
String url = "jdbc:mysql://127.0.0.1:3306/sale?useUnicode=true&characterEncoding=utf-8"; // 資料庫連線字串,一般使用統一資源定位符(url)的形式
String user = "root" ; // 連線資料庫時的使用者
String password = "635241"; // 連線資料庫時的密碼
con = DriverManager.getConnection(url, user, password);
//3.建立語句物件
stm = con.createStatement();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*
* 2.對於insert,delete,update之類的操作,對於異常的出來,可以採取兩種方式
* (1)使用try,catch
* (2)直接丟擲,使用thows,即交給呼叫者進行處理
*/
public boolean executeUpdate(String sql) throws SQLException{
boolean ret=false;
int i=stm.executeUpdate(sql);
if(i>0){
ret=true;
}
return ret;
}
/*
* 3.對於select的操作
*/
public ResultSet executeQuery(String sql) throws SQLException{
rs=stm.executeQuery(sql);
return rs;
}
/*
* 4.資源的釋放
*/
public void close(){
try {
if (rs != null) {
rs.close();
}
if (stm != null) {
stm.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Connection getCon() {
return con;
}
public void setCon(Connection con) {
this.con = con;
}
public Statement getStm() {
return stm;
}
public void setStm(Statement stm) {
this.stm = stm;
}
public ResultSet getRs() {
return rs;
}
public void setRs(ResultSet rs) {
this.rs = rs;
}
}
注:記得在lib檔案中匯入mysql-connector-java-5.0.4-bin.jar 這個jar包,否則無法連線資料庫。