现在项目中虽然不常使用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); } }