MetaData

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
import com.loaderman.jdbc.domain.Emp;
import com.loaderman.jdbc.utils.JdbcUtil;
public class MetaDataDemo {       

       public static void main(String[] args) throws Exception {

              Connection conn = JdbcUtil.getConnection() ;                           // 获取连接对象

              String sql = "select * from emp" ;                                                // 定义sql模板

              PreparedStatement ps = conn.prepareStatement(sql) ;             // 获取PreparedStatement对象          

              ResultSetMetaData metaData = ps.getMetaData() ;                    // 获取结果集元数据

              int columnCount = metaData.getColumnCount() ;                    // 获取列的总数              

              ResultSet rs = ps.executeQuery() ;                                              // 执行sql

              while(rs.next()) {

                     Map<String , Object> map = new HashMap<String , Object>() ;   // 定义一个Map集合对象,用这个对象存储用户的数据 , 一条数据就是一个Map集合

                     Emp emp = new Emp() ;                                         // 创建Emp对象 , 用这个对象来封装数据

                  for(int x = 1 ; x <= columnCount ; x++) {                // 遍历列

                            String columnName = metaData.getColumnName(x) ;      // 获取列名称

                            Object obj = rs.getObject(x) ;                                            // 获取列对应的值

                            if("empno".equals(columnName)) {         // 把列的名称作为键 , 值作为值存储到Map集合中

                                   map.put("empNo", obj) ;

                            }else {

                                   map.put(columnName, obj) ;

                            }

                     } 

                     BeanUtils.populate(emp, map) ;                                  // 使用BeanUtils封装数据

                     System.out.println(emp);                                                          // 打印对象                 

              }

       }

}

 

 

 

posted on 2017-02-19 11:26  LoaderMan  阅读(218)  评论(0编辑  收藏  举报

导航