一个jdbc操作类

    技术2025-04-18  10

    现在项目中虽然不常使用jdbc了,但jdbc连接数据库配置简单容易,非常适合初学者做练习使用。

     

    package datasource;

    import java.sql.*;import java.util.*;

    /** *  * jdbc操作类 * */public class JdbcUtil{ static{   String driverClassName =    "oracle.jdbc.driver.OracleDriver";   try{       Class.forName(driverClassName);   }catch(Exception e){       e.printStackTrace();   } }     public static Connection getConnection(){     Connection con = null;  String url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL";  String userName="scott";  String pwd="tiger";     try{         con = DriverManager.getConnection(url,userName,pwd);     }catch(Exception e){         e.printStackTrace();     }     return con; }

        public static void close(ResultSet rs,  Statement stmt,Connection con){    try{     if(rs!=null) rs.close();    }catch(Exception e){        e.printStackTrace();    }    try{     if(stmt!=null) stmt.close();    }catch(Exception e){        e.printStackTrace();    }    try{     if(con!=null) con.close();    }catch(Exception e){        e.printStackTrace();    } }

        public static void close(Object o){    try{      if(o instanceof ResultSet){     ((ResultSet)o).close();   }else if(o instanceof Statement){     ((Statement)o).close();   }else if(o instanceof Connection){     ((Connection)o).close();   }     }catch(Exception e){      e.printStackTrace();    } }        /**     * 打印结果集     * */    public static void printResultSet(ResultSet rs){   StringBuffer sb = new StringBuffer();   try{    ResultSetMetaData meta = rs.getMetaData();       int cols = meta.getColumnCount();    while(rs.next()){        for(int i=1;i<=cols;i++){            sb.append(meta.getColumnName(i)+"=");         sb.append(rs.getString(i)+"  ");         }        sb.append("/n");    }    System.out.print(sb.toString());   }catch(Exception e){       e.printStackTrace();   } }

     

     /**  * 可以用来处理增、删、改的方法  * */ public static void saveOrUpdateOrDelete(String sql,Object values[]) throws Exception{  PreparedStatement stmt=null;  Connection conn=getConnection();  try {   stmt=conn.prepareStatement(sql);   if(values!=null){    for (int i = 0; i < values.length; i++) {     stmt.setObject(i+1,values[i]);    }   }   stmt.execute();   stmt.close();  } finally {   close(null,stmt,conn);  } }   /**  * 根据给出的SQL进行查询,并将查询结果放到MAP里面,将拼成List返回  * */ public static List query(String sql,Object values[]) throws Exception{    ResultSet rs=null;  PreparedStatement stmt=null;  Connection conn= getConnection();    List result=new ArrayList();  try {   stmt=conn.prepareStatement(sql);   if(values!=null){    for (int i = 0; i < values.length; i++) {     stmt.setObject(i+1,values[i]);    }   }   rs=stmt.executeQuery();   ResultSetMetaData meta = rs.getMetaData();      int columnCount = meta.getColumnCount();   while(rs.next()){    Map map=new HashMap();    for (int i = 0; i < columnCount; i++) {     String columnName=meta.getColumnName(i+1);     map.put(columnName, rs.getObject(columnName));    }    result.add(map);   }  } finally {   close(rs,stmt,conn);  }   return result; }

     

    }

     

     

    junit测试类如下:

     

    import java.io.*;

    import java.util.ArrayList;import java.util.List;

    import org.apache.commons.net.ftp.*;import org.junit.Test;

    import fileftp.test.ServerDomain;

     

    public class TestUtil {  /**  * 测试jdbc操作  * @throws Exception   */ @Test public void testJdbcOpt() throws Exception {    String save=" insert into tn values(?,?) ";  String update=" update tn set name=? where id=? ";  String select=" select * from tn";     Object values[]=new Object[]{"2","testname2"};  Object values2[]=new Object[]{"2"};    //打印  //JdbcUtil.saveOrUpdateOrDelete(update, values2);  List list=JdbcUtil.query(select, null);  System.out.println(list); }  }

    最新回复(0)