一个对象,比如订单Order
有一个无意义的orderId作为唯一标识属性,还有一个有意义的订单号orderNo
orderNo也必须是唯一的,在添加修改数据的时候,就存在校验唯一性的问题
先假设有表order,保含2个字段,orderid,orderNo
1.新增
我们写一个通用的校验类,有一个check方法,参数为表名,校验的列名,列的值
CheckUnique.java
public class CheckUnique {
public static boolean check(
String tablemame,
String coluname,
String coluvalue)
throws BaseException {
boolean isExist = false;
Connection con = null;
Statement pstmt = null;
ResultSet rs = null;
try {
con = BaseDAO.getConnection();
String strSql = "";
strSql =
"select count(1) as count from "
+ tablemame
+ " where "
+ coluname
+ "="
+ coluvalue;
Debug.printErr(strSql);
pstmt = con.createStatement();
rs = pstmt.executeQuery(strSql);
int totalNum = 0;
if (rs.next()) {
totalNum = rs.getInt("count");
if (totalNum != 0)
isExist = true;
}
} catch (SQLException sql) {
try {
if (con != null)
con.rollback();
} catch (Exception e) {
}
throw new BaseException(sql.getMessage());
} finally {
try {
rs.close();
} catch (SQLException e) {
}
try {
pstmt.close();
} catch (SQLException e) {
}
}
return isExist;
}
}
现在我们就可以通过CheckUnique.check("order","orderNo","20050501111")来校验orderNo
2.修改
修改的校验要比新增麻烦,因为修改的时候,检测orderNo当然是存在了。
在CheckUnique类添加新方法checkUpdate(String tableName, //表名
String idColName, //主键列名
String idColValue, //主键列值
String uniColName, //校验列名
String uniColVaue) //校验列值
方法内容基本和check()方法一样,只是sql语句strSql不同,strSql如下
select count(1) as count from tableName t1
where t1.uniColName=uniColVaue
and t1.idColName not in
(
select t2.idColName from tableName t2
where t2.idColName=idColValue and t2.uniColName=uniColVaue
)
order的例子
select count(1) as count from order t1
where t1.orderNo='200505001111'
and t1.orderId not in
(
select t2.orderId from order t2
where t2.orderId=9527 and t2.orderNo='200505001111'
)
分享到:
相关推荐
Oracle支持多种类型的约束,如主键(PRIMARY KEY)、外键(FOREIGN KEY)、唯一性(UNIQUE)、非空(NOT NULL)和检查(CHECK)等。 **添加约束**: ```sql ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束类型 ...
本文将深入探讨如何在 Mybatis Plus 中自定义批量插入和批量更新,并根据唯一索引来确保数据的唯一性。 首先,了解 Mybatis Plus 的批量操作基础。Mybatis Plus 提供了 `batchInsert()` 和 `batchUpdate()` 方法来...
在.NET开发环境中,我们经常需要处理数据库中的序列号或者编号,使其在新增数据时自动加一,以确保每个记录的唯一性。这个过程通常涉及到数据库设计、编程逻辑以及可能的性能优化。以下是对".NET实现新增数据时编号...
6.3.42 单据录入时检查单据体字段唯一性 139 .3.43 批号F7取数 140 6.3.44 设置当前字段更新Web页签的url 140 6.3.45 设置字段可触发Web页面上值改变事件 141 6.3.46 根据物料设置数量单价精度根据币别设置金额精度 ...
对于具有唯一性的数据,需要检查修改后的数据是否冲突。修改操作通过更新实体并调用`Entry()`方法,然后用`SaveChanges()`保存更改。 常用的方法和属性: - `Equals()`: 比较两个值是否相等,可选参数用于忽略大小...
新增及调整字段 EASSCMA1P0009 付款单单头增加“国家”字段 客户为餐饮企业,每日进行采购,且采购物品85%左右相同,做采购申请单时,往往是复制上日的采购申请单,然后再进行修改,其中很大程度上只是修改日期...
12. **字段唯一性测试**:根据实际情况测试名称字段是否具有唯一性。 13. **字段名称一致性**:确认各字段名称书写是否正确,要求编辑界面、信息列表中、错误提示信息、查询条件中的字段名称完全相同。 14. **特殊...
名称字段的唯一性也是需要验证的,而字段名称在不同界面的一致性是用户友好性的体现。特殊格式的字段,如电子邮件和邮编,需符合标准格式。上级信息字段应能自动填充,联动字段信息要同步更新,且只读字段如创建人、...
开发者需要新增一个接口,这个接口的URL是需要被代理的目标,同时接口中包含字段名,这些字段对应着需要扩展的数据库字段。配置中还需要设置一个判断字段,如“是否启用”,当启用时,才会将新的列添加到列表中。 ...
6. **更改标记**:此字段用于简短描述更改的性质,例如“新增”、“删除”、“修订”等,快速识别更改类型。 7. **更改人**:记录做出更改的人员,以便在出现问题时找到责任人,同时也是对工作成果的记录。 8. **...
- 完成编码后,通过计算机软件检查规范性和唯一性,并进行验收,存入代码数据库。 - 代码修改需按程序进行,且修改后的代码同样需要检查和验收。 - 新增代码需检查是否与现有代码重复,并定期维护数据库。 6. **...
本文档提供了一种处理树形数据的方案,主要涉及排序、新增、修改、复制、删除以及数据完整性的检查和汇总统计。 首先,树形数据的存储通常采用自关联的方式,即每个记录都有一个标识其上级记录的字段。在这个例子中...
向表中添加数据完整性约束,如唯一性、非空等。 **语法示例**: ```sql ALTER TABLE [表名] ADD CONSTRAINT 约束名 CHECK ([约束字段] ); ``` **解释**: - **表名**:要添加约束的表的名称。 - **约束名**:...
1.[新增]前台会员投稿和后台文章编辑 新增重复性标题检查按钮和本地获取关键词 2.[新增]新增本地关键词库(位置:inc/keyWord.txt),可以根据自己需求往里面编辑需要的关键词 3.[新增]前台 文章管理 新增查询栏 4....
为了实现这一功能,通常会在数据库设计时设立唯一约束或者通过编程逻辑进行检查,确保每次新增或修改项目编码时,系统都会检查其是否已存在于数据库中。 2. **数据操作的自动化**:测试报告显示,点击“修改”按钮...
- **唯一性检查**:某些字段需要进行唯一性检查。 - **附件上传**:上传多个附件时需注意其对应关系。 #### 4. Packing作业 - **第一步**:根据指定条件获取待打包的出货单列表。 以上是对工作交接内容的详细总结...
- **标志字段**是一种特殊字段,用于记录数据的状态,如新增(new)、修改(changed)和删除(deleted)。在比较新旧数据时,根据标志字段的值来确定每个记录的操作。 - **标志字段的设定规则**: - 如果新旧...