无法生成模型:“表“TableDetails”中列“IsPrimaryKey”的值为DBNull

解决方案:

Execute the following commands in MySQL.
   use <<database name>>;
   set global optimizer_switch='derived_merge=OFF';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用ResultSetMetaData的getColumnName()、getColumnCount()和getColumnDisplaySize()方法获取的名称、数量和显示大小。 然而,ResultSetMetaData并没有提供直接获取的主键或唯一性的方法。要获取这些信息,你需要查询数据库的元数据。可以使用DatabaseMetaData接口的getPrimaryKeys()和getIndexInfo()方法来获取主键和索引信息。 以下是一个使用ResultSetMetaData和DatabaseMetaData来获取主键和唯一性信息的示例代码: ```java try { DatabaseMetaData dbmd = conn.getMetaData(); ResultSet rs = stmt.executeQuery("SELECT * FROM my_table"); ResultSetMetaData rsmd = rs.getMetaData(); int numColumns = rsmd.getColumnCount(); for (int i = 1; i <= numColumns; i++) { String columnName = rsmd.getColumnName(i); String columnType = rsmd.getColumnTypeName(i); int columnSize = rsmd.getColumnDisplaySize(i); boolean isPrimaryKey = false; boolean isUnique = false; ResultSet pk = dbmd.getPrimaryKeys(null, null, columnName); if (pk.next()) { isPrimaryKey = true; } ResultSet idx = dbmd.getIndexInfo(null, null, columnName, false, false); if (idx.next()) { isUnique = !idx.getBoolean("NON_UNIQUE"); } System.out.println(columnName + " (" + columnType + "(" + columnSize + "))" + " isPrimaryKey=" + isPrimaryKey + ", isUnique=" + isUnique); } } catch (SQLException e) { e.printStackTrace(); } ``` 这个代码段会遍历查询结果集的每一,并使用ResultSetMetaData获取名、类型和显示大小,并使用DatabaseMetaData获取的主键和唯一性信息。如果是主键或唯一的,则将相应的布尔设置为true,并在控制台上输出的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值