[Java] 自己写的一个JDBC框架 →→→→→进入此内容的聊天室

来自 , 2020-02-12, 写在 Java, 查看 117 次.
URL http://www.code666.cn/view/959a557f
  1. package cn.itcast.utils;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.sql.Connection;
  6. import java.sql.PreparedStatement;
  7. import java.sql.ResultSet;
  8. import java.sql.SQLException;
  9. import java.util.Properties;
  10.  
  11. import javax.sql.DataSource;
  12.  
  13. import org.apache.commons.dbcp.BasicDataSourceFactory;
  14.  
  15. public class JdbcUtils {
  16.        
  17.         private static DataSource ds=null;
  18.         static {
  19.                 try {
  20.                         InputStream intput=JdbcUtils.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");
  21.                         Properties pro=new Properties();
  22.                         pro.load(intput);
  23.                         BasicDataSourceFactory factory=new BasicDataSourceFactory();
  24.                         ds=factory.createDataSource(pro);
  25.                 } catch (Exception e) {
  26.                         throw new ExceptionInInitializerError(e);
  27.                 }
  28.         }
  29.        
  30.        
  31.         public static Connection getConnection() throws SQLException{
  32.                 return ds.getConnection();
  33.         }
  34.        
  35.         public static void realease(Connection conn,PreparedStatement ps,ResultSet rs){
  36.                 if(conn!=null){
  37.                         try {
  38.                                 conn.close();
  39.                         } catch (SQLException e) {
  40.                                 e.printStackTrace();
  41.                         }
  42.                         conn=null;
  43.                 }
  44.                
  45.                 if(ps!=null){
  46.                         try {
  47.                                 ps.close();
  48.                         } catch (SQLException e) {
  49.                                 e.printStackTrace();
  50.                         }
  51.                         ps=null;
  52.                 }
  53.                
  54.                 if(rs!=null){
  55.                         try {
  56.                                 rs.close();
  57.                         } catch (SQLException e) {
  58.                                 e.printStackTrace();
  59.                         }
  60.                         rs=null;
  61.                 }
  62.         }
  63.        
  64.         //用于对数据的增,删 ,改
  65.          public void update(String sql,Object params[]) throws SQLException{
  66.                  Connection conn=null;
  67.                  PreparedStatement ps=null;
  68.                  ResultSet rs=null;    
  69.                  try{
  70.                          conn=getConnection();
  71.                          ps=conn.prepareStatement(sql);
  72.                          for(int i=0;i<params.length;i++){
  73.                                  ps.setObject(i+1, params[i]);
  74.                          }
  75.                          ps.executeUpdate();
  76.                  }finally{
  77.                          realease(conn, ps, rs);
  78.                  }
  79.          }
  80.          
  81.          //用于对数据的查找
  82.          public static Object query(String sql,Object params[],ResultSetHandler handler) throws SQLException{
  83.                  Connection conn=null;
  84.                  PreparedStatement ps=null;
  85.                  ResultSet rs=null;
  86.                  try{
  87.                          conn=getConnection();
  88.                          ps=conn.prepareStatement(sql);
  89.                          for(int i=0;i<params.length;i++){
  90.                                  ps.setObject(i+1, params[i]);
  91.                          }
  92.                          rs=ps.executeQuery();
  93.                          //由于不知道对结果集的处理,这个地方就暴露一个接口,让使用者去调用。
  94.                          return handler.handel(rs);
  95.                  }finally{
  96.                          realease(conn, ps, rs);
  97.                  }       
  98.          }
  99.  
  100. }
  101.  
  102.  

回复 "自己写的一个JDBC框架"

这儿你可以回复上面这条便签

captcha