情况概述:
今天完成了测试类的编写,通用方法类的设计。
代码如下:
CommonMethod.Java
package com.zlc.util;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.Statement;
public class CommonMethod {
public static Connection conn = null;
public static PreparedStatement ps = null;
public static ResultSet rs = null;
/**
*
* @Title: createPreParedStatement
* @Description: PreParedStatement的创建方法
* @param: @param sql
* @param: @param params
* @param: @return
* @param: @throws SQLException
* @return: PreparedStatement
* @throws
*/
public static PreparedStatement createPreParedStatement(String sql,Object[] params) throws SQLException {
DBUtil db = new DBUtil();
conn = db.DBConnection();
ps = (PreparedStatement) conn.prepareStatement(sql);
// 查询
// set方法的个数依赖于?的个数,而?的个数与数组的个数一致
if (params != null) {
for (int i = 0; i < params.length; i++) {
ps.setObject(i + 1, params[i]);
}
}
return ps;
}
/**
*
* @Title: executeUpdate
* @Description: 通用的增刪改查
* @param: @param sql 语句
* @param: @param params 参数
* @param: @return
* @return: boolean 是否完成操作
* @throws
*/
public static boolean executeUpdate(String sql, Object[] params) {
try {
ps = createPreParedStatement(sql, params);
// 执行查询-返回值
int count = ps.executeUpdate();
if (count > 0) {
return true;
} else {
return false;
}
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
try {
closeAll(rs, (Statement) ps, conn);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
*
* @Title: executeQuery
* @Description: 通用的查 返回值是一个集合
* @param: @param sql 语句
* @param: @param params 参数
* @param: @return
* @return: ResultSet 返回集
* @throws
*/
public static ResultSet executeQuery(String sql, Object[] params) {
try {
ps = createPreParedStatement(sql, params);
rs = ps.executeQuery();
return rs;
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
/**
*
* @Title: closeAll
* @Description: 关闭数据库连接
* @param: @param rs
* @param: @param stmt
* @param: @param conn
* @param: @throws SQLException
* @return: void
* @throws
*/
public static void closeAll(ResultSet rs,Statement stmt,Connection conn) throws SQLException {
if (rs != null) {
rs.close();
}
if (conn != null) {
conn.close();
}
if (stmt != null) {
stmt.close();
}
}
/**
*
* @Title: getTotalCount
* @Description: 查询数据总数
* @param: @param sql
* @param: @return
* @return: int
* @throws
*/
public static int getTotalCount(String sql) {
int count = -1;
try {
ps = createPreParedStatement(sql, null);
rs = ps.executeQuery();
if (rs.next()) {
count = rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
closeAll(rs, (Statement) ps, conn);
} catch (SQLException e) {
e.printStackTrace();
}
}
return count;
}
}