一個BaseDao.java檔案幫助大家簡單操作mysql資料庫
BaseDao.java代碼塊
代碼:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class BaseDao {
private static String driver="com.mysql.jdbc.Driver";//資料庫驅動
private static String database;//資料庫名
private static String url="jdbc:mysql://"; //url位址
private static String username;//使用者名
private static String password;//密碼
private static Connection con=null;//連接配接對象
private static PreparedStatement pstmt=null;//sql語句預處理對象
private static ResultSet rs=null;//查詢生成的結果集
private static int rows=;//執行增删改sql語句傳回的影響的行數
/**
*
* @param linkUrl 資料庫連接配接位址,本地連接配接為localhost
* @param port 端口号
* @param database 使用的資料庫
* @param username 使用者名
* @param password 密碼
*/
public BaseDao(String linkUrl,int port,String database,String username,String password) {
this.database = database;
this.username = username;
this.password = password;
this.url += linkUrl+":"+port+"/"+database;
}
public static String getDriver() {
return driver;
}
public static void setDriver(String driver) {
BaseDao.driver = driver;
}
public static String getDatabase() {
return database;
}
public static void setDatabase(String database) {
BaseDao.database = database;
}
public static String getUrl() {
return url;
}
public static void setUrl(String url) {
BaseDao.url = url;
}
public static String getUsername() {
return username;
}
public static void setUsername(String username) {
BaseDao.username = username;
}
public static String getPassword() {
return password;
}
public static void setPassword(String password) {
BaseDao.password = password;
}
/**
* 建立資料連接配接
* @return 傳回連接配接
*/
private static Connection getCon() {
Connection con=null;
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
con=DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}
/**
*
* @param sql 增删改語句
* @return 傳回的數字表示影響了幾行
*/
public static int exeUp(String sql) {
con=getCon();
try {
pstmt=con.prepareStatement(sql);
rows=pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
closeResultSet(rs);
closeAll(rs);
}
return rows;
}
/**
* 執行增删改語句
* @param sql 查詢語句
* @param objs objs數組存放sql語句中?對應的内容
* @return 傳回的數字表示影響了幾行
*/
public static int exeUp(String sql,Object [] objs) {
con=getCon();
try {
pstmt=con.prepareStatement(sql);
for(int i=;i<objs.length;i++) {
pstmt.setObject(i+, objs[i]);
}
rows=pstmt.executeUpdate();
if (rows>) {
System.out.println("sql語句執行成功");
} else {
System.out.println("sql語句執行失敗");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
closeResultSet(rs);
closeAll(rs);
}
return rows;
}
/**
* 執行查詢語句
* @param sql 查詢語句
* @return 執行成功傳回結果集
*/
public static ResultSet exeQu(String sql) {
con=getCon();
try {
pstmt=con.prepareStatement(sql);
rs=pstmt.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
/**
* 執行查詢語句
* @param sql 查詢語句
* @param objs objs數組存放sql語句中?對應的内容
* @return 執行成功傳回結果集
*/
public static ResultSet exeQu(String sql,Object [] objs) {
con=getCon();
try {
pstmt=con.prepareStatement(sql);
for(int i=;i<objs.length;i++) {
pstmt.setObject(i+, objs[i]);
}
rs=pstmt.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
/**
* 關閉ResultSet資源
* @param rs
*/
private static void closeResultSet(ResultSet rs) {
try {
if(rs!=null) {
rs.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 關閉資源
* @param con 連接配接對象
* @param pstmt sql預處理對象
* @param rs 結果集
*/
public static void closeAll(ResultSet rs) {
try {
if(rs!=null) {
rs.close();
}
if(pstmt!=null) {
pstmt.close();
}
if(con!=null) {
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 釋放資源
* @param resources
*/
public static void releaseResources(AutoCloseable... resources) {
for (AutoCloseable resource : resources) {
if (resource!= null) {
try {
resource.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
測試代碼:
import java.sql.ResultSet;
public class Demo {
public static void main(String[] args) throws Exception {
//本地連接配接,資料庫名:company,使用者名:root,密碼:123.
BaseDao bd = new BaseDao("localhost",,"company","root","123.");
//sql語句
String sql = "UPDATE partment SET part_name=? WHERE part_num=4";
Object[] objs = {"管理部"};//obj數組中存放sql語句中?對應的内容
bd.exeUp(sql,objs);//執行修改功能的sql語句
sql = "select * from partment";
ResultSet rs = bd.exeQu(sql);//執行查詢,傳回結果集
//查詢結果集内容
while (rs.next()) {
System.out.println(rs.getInt("part_num")+"\t"+rs.getString("part_name"));
}
//關閉資料庫連接配接資源
bd.closeAll(rs);
}
}
注:如果代碼有錯誤,歡迎留言!