原文:百度文库:利用 Commons组件 beanutils、dbutils简化JDBC数据库操作
BeanutilsJDBCTest.java
package test;
import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.Properties;
import org.apache.commons.beanutils.DynaBean;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.beanutils.ResultSetDynaClass;
public class BeanutilsJDBCTest {
//
public static Connection getConnection() throws SQLException, IOException
{
Connection con = null;
try {
Properties props = new Properties();
FileInputStream in = new FileInputStream("database.properties");
props.load(in);
in.close();
String driver = props.getProperty("driver");
String url = props.getProperty("url");
String username = props.getProperty("username");
String password = props.getProperty("password");
Class.forName(driver);
con = DriverManager.getConnection(url, username, password);
} catch (IOException ex) {
ex.printStackTrace();
} catch (SQLException se) {
se.printStackTrace();
} catch (ClassNotFoundException ce) {
ce.printStackTrace();
}
return con;
}
//
public static void main(String[] args) {
String sh =null;
if (args.length ==1){
sh = args[0];
} else {
System.out.println(" usage: java -cp %JAR%;. test.BeanutilsJDBCTest 44 ");
return;
}
if (sh.length() >2) return;
long startTime = System.currentTimeMillis();
Connection con = null;
Statement st = null;
ResultSet rs = null;
ResultSetMetaData rsmd = null;
try {
con = getConnection();
st = con.createStatement();
String sql = "select * from table1 where code like '"+sh+"%';";
rs = st.executeQuery(sql);
rsmd = rs.getMetaData();
int count = rsmd.getColumnCount(); // 取列数
String[] columns = new String[count]; // 列名数组
for(int i=1; i<=count; i++){
columns[i-1] = rsmd.getColumnName(i);
}
// 打印表头,中文列名
System.out.println("编码\t中文地名");
StringBuffer buf = new StringBuffer();
// 输出结果集
ResultSetDynaClass rsdc = new ResultSetDynaClass(rs);
Iterator itr = rsdc.iterator();
while (itr.hasNext()) {
DynaBean dBean = (DynaBean) itr.next();
for (String column : columns){
buf.append(PropertyUtils.getSimpleProperty(dBean, column)+"\t");
}
buf.append("\r\n");
}
System.out.println(buf.toString());
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) { rs.close();}
if (st != null) { st.close();}
if (con != null) { con.close();}
} catch (Exception e) {
e.printStackTrace();
}
}
long endTime = System.currentTimeMillis();
System.out.println(" Time: "+(endTime-startTime)+" ms");
}
}
set JAR=mysql-connector-java-5.1.24-bin.jar
set JAR=%JAR%;commons-beanutils-1.9.3.jar;commons-logging-1.2.jar
javac -cp %JAR% -d . -encoding gbk BeanutilsJDBCTest.java
java -cp %JAR%;. test.BeanutilsJDBCTest 44