package cn.itcast.utils;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
public class JdbcUtils {
private static DataSource ds=null;
static {
try {
InputStream intput
=JdbcUtils.
class.
getClassLoader().
getResourceAsStream("dbcpconfig.properties");
pro.load(intput);
BasicDataSourceFactory factory=new BasicDataSourceFactory();
ds=factory.createDataSource(pro);
}
}
return ds.getConnection();
}
if(conn!=null){
try {
conn.close();
e.printStackTrace();
}
conn=null;
}
if(ps!=null){
try {
ps.close();
e.printStackTrace();
}
ps=null;
}
if(rs!=null){
try {
rs.close();
e.printStackTrace();
}
rs=null;
}
}
//用于对数据的增,删 ,改
try{
conn=getConnection();
ps=conn.prepareStatement(sql);
for(int i=0;i<params.length;i++){
ps.setObject(i+1, params[i]);
}
ps.executeUpdate();
}finally{
realease(conn, ps, rs);
}
}
//用于对数据的查找
try{
conn=getConnection();
ps=conn.prepareStatement(sql);
for(int i=0;i<params.length;i++){
ps.setObject(i+1, params[i]);
}
rs=ps.executeQuery();
//由于不知道对结果集的处理,这个地方就暴露一个接口,让使用者去调用。
return handler.handel(rs);
}finally{
realease(conn, ps, rs);
}
}
}