欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
JDBC 讀取sqlserver2008所有用戶(hù)表的表結構
Java代碼  
  1.    package com;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.DatabaseMetaData;  
  5. import java.sql.DriverManager;  
  6. import java.sql.ResultSet;  
  7. import java.sql.ResultSetMetaData;  
  8. import java.sql.SQLException;  
  9. import java.sql.Statement;  
  10. import java.util.ArrayList;  
  11. import java.util.HashMap;  
  12. import java.util.List;  
  13. import java.util.Map;  
  14. /** 
  15.  * 還在改進(jìn)中。。。。。下面將要對比sqlserver2008和oracle類(lèi)型的轉換 
  16.  * 從sqlserver取出來(lái)的列類(lèi)型變換成oracle的,然后在oracle創(chuàng )建表 
  17.  * 接著(zhù)在拼接創(chuàng )建表結構的時(shí)候拼接insert語(yǔ)句,類(lèi)型轉換想做成xml格式。 
  18.  * 以后方便不同數據庫的類(lèi)型轉換。 
  19.  * @author HJ 
  20.  *2010-7-31 0:53 
  21.  */  
  22. public class SqlServerTest {  
  23.   
  24.     private static String JDBCURL= "jdbc:jtds:sqlserver://localhost:1433;DatabaseName=Prison";  
  25.     private static String USER = "sa";  
  26.     private static String PWD = "123456";  
  27.     private static Connection con = null;  
  28.     private static Map<String,String> type= new HashMap<String, String>();  
  29.       
  30.     static{  
  31.         try {  
  32.             if(type != null){  
  33.                 type.put("int""number");  
  34.                 type.put("text""blob");  
  35.                 type.put("nvarchar""varchar2");  
  36.             }  
  37.             Class.forName("net.sourceforge.jtds.jdbc.Driver");  
  38.         } catch (ClassNotFoundException e) {  
  39.             // TODO Auto-generated catch block  
  40.             e.printStackTrace();  
  41.         }  
  42.     }  
  43.       
  44.     public static void main(String[] args) {  
  45.         SqlServerTest t  = new SqlServerTest();  
  46.         List<String> names = t.getAllTables("mssql""");  
  47.         for (int i = 0; i < names.size(); i++) {  
  48.             System.out.println(names.get(i));  
  49.             System.out.println(t.getTableStruct(names.get(i),"mssql"));  
  50.         }  
  51.           
  52.     }  
  53.       
  54.       
  55.     /** 
  56.      * 獲取連接 
  57.      * @return 
  58.      */  
  59.     public static Connection getConnection(){  
  60.           
  61.         if(con == null){  
  62.             try {  
  63.                 con = DriverManager.getConnection(JDBCURL,USER,PWD);  
  64.             } catch (SQLException e) {  
  65.                 // TODO Auto-generated catch block  
  66.                 e.printStackTrace();  
  67.             }  
  68.         }  
  69.         return con;  
  70.     }  
  71.     /** 
  72.      * 獲取某種數據庫中中用戶(hù)的所有表 
  73.      * @param type 
  74.      * @param database 
  75.      * @return 
  76.      */  
  77.     public List<String> getAllTables(String type,String database){  
  78.           
  79.         List<String> list = null;  
  80.         if("mssql".equals(type)){  
  81.             //查詢(xún)所有用戶(hù)表  
  82.             StringBuffer sql = new StringBuffer("Select NAME FROM ")  
  83.                                .append(database)  
  84.                                .append("..SysObjects Where XType='U' orDER BY Name");  
  85.             Statement sta = null;  
  86.             ResultSet rs = null;  
  87.             try {  
  88.                 sta = SqlServerTest.getConnection().createStatement();  
  89.                 rs = sta.executeQuery(sql.toString());  
  90.                 while(rs.next()){  
  91.                     if(list == null){  
  92.                         list = new ArrayList<String>();  
  93.                     }  
  94.                     list.add(rs.getString("NAME"));  
  95.                 }  
  96.             } catch (SQLException e) {  
  97.                 e.printStackTrace();  
  98.             }finally{  
  99.                 try {  
  100.                     if(rs != null)  
  101.                         rs.close();  
  102.                     if(sta != null)  
  103.                         sta.close();  
  104.                 } catch (SQLException e) {  
  105.                     e.printStackTrace();  
  106.                 }  
  107.             }  
  108.         }  
  109.         return list;  
  110.     }  
  111.     /** 
  112.      * 獲取表結構 
  113.      * @param tableName 表名  
  114.      * @param dataType 數據庫類(lèi)型 
  115.      * @return 
  116.      */  
  117.     public String getTableStruct(String tableName,String dataType){  
  118.           
  119.         StringBuilder sb = null;  
  120.         if("mssql".equals(dataType)){  
  121.               
  122.             sb = new StringBuilder("drop table if exists ")  
  123.                               .append(tableName).append(";")  
  124.                               .append("\n")  
  125.                               .append("create table ")  
  126.                               .append(tableName)  
  127.                               .append("(")  
  128.                               .append("\n\t");  
  129.             String sql = "select * from "+tableName;  
  130.             Statement sta = null;  
  131.             ResultSet rs = null;  
  132.             ResultSet key = null;  
  133.             ResultSetMetaData ma = null;  
  134.             DatabaseMetaData meta = null;  
  135.             try {  
  136.                 meta =SqlServerTest.getConnection().getMetaData();//取得數據庫連接元數據  
  137.                 //判斷表中是否有主鍵列  
  138.                 key = meta.getPrimaryKeys(nullnull, tableName);  
  139.                 String keyColumn = null;  
  140.                 if(key.next()){  
  141.                     keyColumn = key.getString(4);  
  142.                 }  
  143.                 sta = SqlServerTest.getConnection().createStatement();  
  144.                   
  145.                 rs = sta.executeQuery(sql.toString());  
  146.                 ma = rs.getMetaData();  
  147.                   
  148.                 int countColumn = ma.getColumnCount();  
  149.                   
  150.                 for(int i = 1;i<=countColumn; i++){  
  151.                        
  152.                     sb.append(ma.getColumnName(i)).append("\t").append(  
  153.                                ma.getColumnTypeName(i));  
  154.                      //判斷長(cháng)度是否為0  
  155.                      if(!"0".equals(ma.getColumnDisplaySize(i))){  
  156.                          sb.append("(").append(  
  157.                                    ma.getColumnDisplaySize(i)).append(")");  
  158.                      }  
  159.                      //System.out.println(keyColumn);  
  160.                         //判斷是否為主鍵  
  161.                      if(ma.getColumnName(i).equals(keyColumn)){  
  162.                          sb.append("  primary key");  
  163.                      }  
  164.                       
  165.                       // 判斷字段是否能為空  
  166.                      if(ma.isNullable(i) == ResultSetMetaData.columnNoNulls) {  
  167.                          sb.append(" ").append("not null");  
  168.                      }  
  169.                      // 最后一列去掉逗號  
  170.                      if (i != countColumn) {  
  171.                          sb.append(", \n\t");  
  172.                      } else {  
  173.                          sb.append("\n");  
  174.                      }  
  175.                 }  
  176.                 sb.append(")");  
  177.             } catch (SQLException e) {  
  178.                 e.printStackTrace();  
  179.             }finally{  
  180.                 try {  
  181.                     if(rs != null)  
  182.                         rs.close();  
  183.                     if(sta != null)  
  184.                         sta.close();  
  185.                 } catch (SQLException e) {  
  186.                     e.printStackTrace();  
  187.                 }  
  188.             }    
  189.               
  190.         }  
  191.         return sb.toString();  
  192.     }  
  193. }  
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
jdbc操作數據庫插入、更新、刪除、查找
JAVA版微信支付V3-完全版
EntityUtils
Vaadin框架學(xué)習(login DEMO)
使ibatis支持hibernate式的物理分頁(yè)
Hibernate4 執行SQL語(yǔ)句
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久