话不多说,直接上代码。
package com.yc.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class DBHelper {
static{
try {
Class.forName(DBProperties.getDBDbProperties().getProperty("driver"));
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 获取数据库连接的方法
* @return
*/
private Connection getConnection(){
Connection con=null;
try {
con=DriverManager.getConnection(DBProperties.getDBDbProperties().getProperty("url"),DBProperties.getDBDbProperties());
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
/**
* 给预编译语句中的占位符?赋值
* @param pstmt 要赋值的预编译块
* @param params 给占位符的值
* @throws SQLException
*/
private void setParams(PreparedStatement pstmt,List<Object> params){
if( params!=null && params.size()>0 ){
for(int i=0,len=params.size();i<len;i++){
try {
pstmt.setObject(i+1,params.get(i));
} catch (SQLException e) {
System.out.println( "第 "+(i+1)+" 个注值失败..."+ e.getMessage() );
e.printStackTrace();
}
}
}
}
/**
* 给预编译语句中的占位符?赋值
* @param pstmt 要赋值的预编译块
* @param params 给占位符的值
* @throws SQLException
*/
private void setParams(PreparedStatement pstmt,Object ... params){
if( params!=null && params.length>0 ){
for(int i=0,len=params.length;i<len;i++){
try {
pstmt.setObject(i+1,params[i]);
} catch (SQLException e) {
System.out.println( "第 "+(i+1)+" 个注值失败..."+ e.getMessage() );
e.printStackTrace();
}
}
}
}
/**
* 关闭资源的方法
* @param rs 要关闭的结果集
* @param pstmt 要关闭的预编译块
* @param con 要关闭的连接
*/
private void close(ResultSet rs,PreparedStatement pstmt,Connection con){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(pstmt!=null){
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 关闭资源的方法
* @param pstmt 要关闭的预编译块
* @param con 要关闭的连接
*/
private void close(PreparedStatement pstmt,Connection con){