读书人

新增/批改时唯一性字段检查

发布时间: 2012-11-08 08:48:11 作者: rapoo

新增/修改时,唯一性字段检查
一个对象,比如订单Order
有一个无意义的orderId作为唯一标识属性,还有一个有意义的订单号orderNo
orderNo也必须是唯一的,在添加修改数据的时候,就存在校验唯一性的问题

先假设有表order,保含2个字段,orderid,orderNo

1.新增
我们写一个通用的校验类,有一个check方法,参数为表名,校验的列名,列的值


CheckUnique.java


现在我们就可以通过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' )

读书人网 >编程

热点推荐