on getConnection() {
Connection conn = threadLocal.get();
if(null == conn) {
try {
conn =dataSource.getConnection();
threadLocal.set(conn);
} catch (SQLException e) {
e.printStackTrace();
}
}
return conn;
}
/** * 关闭连接 * @param conn */
public static void closeConnection(Connection conn) {
if(null != conn) {
threadLocal.remove();
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
其中配置文件为:(database.properties)
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/db_market
username=root
password=cc321321
JDBC管理类
package pers.jason.market.util;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import pers.jason.market.rowmapper.RowMapper;
/** * JDBC管理类 * @author Administrator * */
public final class JDBCTemplate {
/** * 增删改方法 * @param sql * @param param * @return * @throws SQLException */
public static int executeUpdate(String sql,Object ...param) {
int rows=-1;
Connection conn=JDBCUtil.getConnection();
try {
PreparedStatement ps=conn.prepareStatement(sql);
if(null!=param && param.length>0){
for (int i = 0; i < param.length; i++) {
ps.setObject((i+1), param[i]);
}
}
rows=ps.executeUpdate();
close(null,ps);
} catch (SQLException e) {
e.printStackTrace();
}
return rows;
}
/** * 查询方法 * @param sql * @param rowmapper * @param param * @return * @throws SQLException */
public static List<Object> executeQuery(String sql,RowMapper rowmapper,Object ...param) throws SQLException {
List<Object> list = new ArrayList<Object>();
Connection conn = JDBCUtil.getConnection();
PreparedStatement ps = conn.prepareStatement(sql);
if(null != param && param.length>0) {
for (int i = 0; i < param.length; i++) {
ps.setObject((i+1), param[i]);
}
}
System.out.println("JDBC 中PS: " + ps);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
Object obj = rowmapper.getObjectMapper(rs);
list.add(obj);
}
close(rs,ps);
return list;
}
private static void close(ResultSet rs,PreparedStatement ps) throws SQLException {
if(null != rs) {
rs.close();
}
if(null != ps) {
ps.close();
}
}
}