Json數據在同步的時候需要取得對應數據中的主鍵,但是mysql沒有找到獲得主鍵名的方法,所以自己寫了一個獲取主鍵的方法,並且能正確使用,代碼如下
/**
* 根據數據庫連接和表明獲取主鍵名
* @param con 傳進來一個數據庫連接對象
* @param table 數據庫中的表名
* @return 執行成功返回一個主鍵名的字符數組,否則返回null或拋出一個異常
* @exception 拋出sql執行異常
* @author yuyu
*/
public static String[] getPrimaryKey(Connection con,String table)throws Exception{
String sql="SHOW CREATE TABLE "+table;
try {
PreparedStatement pre=con.prepareStatement(sql);
ResultSet rs=pre.executeQuery();
if(rs.next()){
//正則匹配數據
Pattern pattern = Pattern.compile("PRIMARY KEY \\(\\`(.*)\\`\\)");
Matcher matcher =pattern.matcher(rs.getString(2));
matcher.find();
String data=matcher.group();
//過濾對於字符
data=data.replaceAll("\\`|PRIMARY KEY \\(|\\)", "");
//拆分字符
String [] stringArr= data.split(",");
return stringArr;
}
}catch(Exception e){
throw e;
}
return null;
}