使用递归唯一性验证的方式生成主键
JadePool作为简化JDBC编程工具,提供主键生成方法是必须的。在JadePool中,ProcessVO用于事务型数据库的DML操作,Access用于非事务型数据库的DML操作,Access参照ProcessVO实现。
目前,JadePool只提供了单主键的键值生成方法,没有提供复合主键的生成方法。这里以ProcessVO为例。ProcessVO提供了三个插入主键的方法,分别是:
/** * Make String KeyValue 检查用户输入的字段是否存在、其值是否合法和是否唯一 * * @param keyValue 给定键值 * @return 字段存在,且合法唯一,则返回keyValue本身;否则,返回null */ synchronized public String makeStringKeyValue(String keyField, String keyValue) throws SQLException { JadeTool tool = new JadeTool(); if (keyValue == null) { throw new SQLException("the key field value must not be null. "); } String v = null; if (tool.isInFields(fields, keyField) && !keyValue.equals(lastStringKeyValue)) { lastStringKeyValue = keyValue; v = keyValue; } if (v == null) { throw new SQLException("the key field value already being existence. "); } return v;//可能返回null值,返回null时,用户应当重新输入新值 }