jdbcTemplate 獲取資料表結構

awen7916發表於2016-01-11
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. }  

相關文章