java取得Mysql主键,在Mysql获取表中所有的主键

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;
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值