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