package cn.lnu.utils; import java.io.InputStream; import java.lang.reflect.Field; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import java.util.Properties; import javax.sql.DataSource; import org.apache.commons.dbcp.BasicDataSourceFactory; //ʹ��dbcp����Դ�������ݿ����ӳصķ�ʽΪ�û�ά��һ������ public class JdbcUtils { private static DataSource ds=null;//������һ�����ݿ����ӳأ��û���ס�ӹ������д��������ӳ� //��̬����飬ֻ����һ��mysql��������ȡһ�������ļ� static{ try{ InputStream in=JdbcUtils.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");//�������ļ�����һ������ Properties dbcpconfig=new Properties(); dbcpconfig.load(in); BasicDataSourceFactory factory=new BasicDataSourceFactory();//newһ�����ӳع��� ds=factory.createDataSource(dbcpconfig);//����dbcp�����ļ�����һ�����ݿ����ӳ� }catch(Exception e){ throw new ExceptionInInitializerError(e); } } //�����ݿ����ӳ�ds�л��һ�����ݿ����� public static Connection getConnection() throws SQLException { return ds.getConnection(); } public static void release(Connection conn,Statement st,ResultSet rs){ if(rs!=null){ try{ rs.close(); }catch(Exception e){ e.printStackTrace(); } rs=null; } if(st!=null){ try{ st.close(); }catch(Exception e){ e.printStackTrace(); } st=null; } if(conn!=null){ try{ conn.close(); }catch(Exception e){ e.printStackTrace(); } conn=null; } } //�ڹ������г�ȡ��ɾ�IJ����Ĺ������룬���Ƕ���ֻ��sql���Ͳ�����ͬ,���ォ�乫�����ֳ�ȡ��һ��������(����ɾ�ĵ��Ż�) public static void update(String sql,Object params[]) throws SQLException{ Connection conn=null; PreparedStatement st=null; ResultSet rs=null; try{ conn=getConnection(); st=conn.prepareStatement(sql); //ʹ�ô��ݹ����IJ���������䴫�ݹ�����sql��䣬ʹ���Ϊһ��������sql��� for(int i=0;i<params.length;i++){ st.setObject(i+1, params[i]); } st.executeUpdate(); }finally{ release(conn, st, rs); } } //��������ʵ�ֶԲ�ѯ�������������ȡ�IJ�ѯ�Ż� public static Object query(String sql,Object params[],ResultSetHandler handler) throws SQLException{ Connection conn=null; PreparedStatement st=null; ResultSet rs=null; try{ conn=getConnection(); st=conn.prepareStatement(sql); //ʹ�ô��ݹ����IJ���������䴫�ݹ�����sql��䣬ʹ���Ϊһ��������sql��� for(int i=0;i<params.length;i++){ st.setObject(i+1, params[i]); } rs=st.executeQuery(); //�������� return handler.handler(rs);//ʹ���û����ݹ������Լ�ʵ�ֿ�ܱ�¶�ӿڵĽ����������������������������ǽ�������ϴ���һ��list���ϻ���һ��javabean�� }finally{ release(conn, st, rs); } } }