java : commons-beanutils DynaBean

来源:互联网 发布:淘宝联盟快速升级 编辑:程序博客网 时间:2024/06/05 19:22

原文:百度文库:利用 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

0 0
原创粉丝点击