Fight With Me!!!

导航

jdbcTemplate 获取数据表结构

jdbcTemplate 操作方法 
Java代码  收藏代码
  1. /** 
  2. *1.方法一: 
  3. */  
  4. String sql = "select * from "+ tableName;  
  5. //RowCountCallbackHandler rcch = new RowCountCallbackHandler();  
  6. //this.jdbcTemplateDao.query(sql, rcch);  
  7. //String[] coloumnName = rcch.getColumnNames();  
  8. //int[] coloumnType = rcch.getColumnTypes();  
  9. SqlRowSet sqlRowSet = this.jdbcTemplateDao.queryForRowSet(sql);  
  10. SqlRowSetMetaData sqlRsmd = sqlRowSet.getMetaData();  
  11. int columnCount = sqlRsmd.getColumnCount();  
  12. for (int i = 1; i <= columnCount; i++) {  
  13. Map<String,String> fieldMap = new HashMap<String,String>();  
  14. fieldMap.put("name", sqlRsmd.getColumnName(i));  
  15. fieldMap.put("fieldType", String.valueOf(sqlRsmd.getColumnType(i)));  
  16. tableFieldList.add(fieldMap);  
  17. }  
  18.   
  19. /** 
  20. *方法二: 
  21. */  
  22. String sql = "select * from "+ tableName;  
  23. RowCountCallbackHandler rcch = new RowCountCallbackHandler();  
  24. this.jdbcTemplateDao.query(sql, rcch);  
  25. String[] coloumnName = rcch.getColumnNames();  
  26. int[] coloumnType = rcch.getColumnTypes();  



下面这里是JDBC的操作方法 

Java代码  收藏代码
  1. import java.sql.DriverManager;  
  2. import java.sql.ResultSet;  
  3. import java.sql.SQLException;  
  4. import java.sql.Statement;  
  5. import java.util.ArrayList;  
  6. import java.util.Iterator;  
  7. import java.util.List;  
  8.   
  9. import com.mysql.jdbc.Connection;  
  10. import com.mysql.jdbc.ResultSetMetaData;  
  11.   
  12. public class OperateDB {  
  13.   
  14.  public static void main(String[] args) {  
  15.   try {  
  16.    Class.forName("com.mysql.jdbc.Driver");  
  17.    String url = "jdbc:mysql://192.168.11.211/education?useUnicode=true&characterEncoding=utf-8";  
  18.    String user = "root";  
  19.    String password = "12345678";  
  20.    Connection con = (Connection) DriverManager.getConnection(url, user, password);  
  21.    Statement statement = con.createStatement();  
  22.    ResultSet result = statement.executeQuery("select * from t_sys_user");  
  23. 注意,这里,完全可以操作视图,操作表的sql语句 与操作视图的sql语句一样,    
  24.   
  25.    
  26.   
  27.   
  28.    ResultSetMetaData metadata = (ResultSetMetaData) result.getMetaData();  
  29.    List<String> metadataList = new ArrayList<String>();  
  30.    System.out.println("====================表结构=============================");  
  31.    for(int i = 1; i <= metadata.getColumnCount();i++){  
  32.     metadataList.add(metadata.getColumnName(i));  
  33.     System.out.print(metadata.getColumnName(i) + "   ");   //name  
  34.     System.out.print(metadata.getColumnTypeName(i) + "   ");  //type  
  35.     System.out.print(metadata.isNullable(i) + "   ");    //null  
  36.     System.out.print(metadata.getColumnCharacterSet(i) + "   "); //encode  
  37.     System.out.println();   //key  
  38.       
  39.    }  
  40.      
  41.    System.out.println("====================表数据=============================");  
  42.    Iterator<String> i = null;  
  43.    String oneKey = null;  
  44.    while(result.next()){  
  45.     i = metadataList.iterator();  
  46.     while(i.hasNext()){  
  47.      oneKey = i.next();  
  48.      System.out.print(oneKey + ":" + result.getString(oneKey) + "    ");  
  49.     }  
  50.     System.out.println();  
  51.    }  
  52.      
  53.    result.close();  
  54.    statement.close();  
  55.    con.close();  
  56.      
  57.   } catch (ClassNotFoundException e) {  
  58.    e.printStackTrace();  
  59.   } catch (SQLException e) {  
  60.    e.printStackTrace();  
  61.   }  
  62.     
  63.  }  
  64.   
  65. }  
 
 

posted on 2016-03-02 08:40  nickTimer  阅读(1993)  评论(0编辑  收藏  举报