数据库表中设计如下:
id:主键,pid:父ID,num是int数据,class_id:是层级我现在界面上将id为1的所有numa,numb,numc,numd4个数据加1或者是减1要求将id为1的下面所有子节点的numa,numb,numc,numd的同样加1或者是减1比如:
id=1的numa,numb,numc,numd设置为19,19,19,19说明全部减1了,那么子节点全部减1也为19又比如:
id=1的numa,numb,numc,numd设置为21,19,21,19说明numa和numc加1了,而numa和numc减1了,那么相应的子节点也应该是numa和numc加1了,而numa和numc减1用代码或者是SQL均可以,我用的是mybaties这个要怎么做啊,想了几天了,实在没有好的办法了。
id:主键,pid:父ID,num是int数据,class_id:是层级我现在界面上将id为1的所有numa,numb,numc,numd4个数据加1或者是减1要求将id为1的下面所有子节点的numa,numb,numc,numd的同样加1或者是减1比如:
id=1的numa,numb,numc,numd设置为19,19,19,19说明全部减1了,那么子节点全部减1也为19又比如:
id=1的numa,numb,numc,numd设置为21,19,21,19说明numa和numc加1了,而numa和numc减1了,那么相应的子节点也应该是numa和numc加1了,而numa和numc减1用代码或者是SQL均可以,我用的是mybaties这个要怎么做啊,想了几天了,实在没有好的办法了。
解决方案 »
- java 的加密解密 急 熟悉的进来看看 求代码
- 请教:TCPClient和Sever通讯,Read和Write之间需要间隔多长时间合适?
- 不喜欢结贴的笨蛋给你们一个一个忠告
- 如何正确使用Sestem.in.read()方法?
- 请问java类的源代码哪里找的到
- APPLET签名问题,隐藏"Java Applet Window"
- 请教这句话为什么是错的呢?多谢!(请举例说明)
- 与mysql连接的问题!
- JBuilder6.0字体的问题???
- J builder5.0中出现neither class nor source found for java.lang.Object
- 数组中的值不重复,从数组随机返回一个值,要求不能重复
- 一个WeakHashMap的问题
private void test() {
String id = "1";
String numa = "+1";
String numb = "+1";
String numc = "+1";
String numd = "+1";
//根据id查询数据
Num num = findById(id);
num.setNuma(numCalculate(num.getNuma, numa));
num.setNumb(numCalculate(num.getNumb, numb));
num.setNumc(numCalculate(num.getNumc, numc));
num.setNumd(numCalculate(num.getNumd, numd));
save(num);//保存更新
//根据pid查询数据库数据集合,自己写sql
List<Num> list = findByPid(id);
for (Num n : list) {
n.setNuma(numCalculate(n.getNuma, numa));
n.setNumb(numCalculate(n.getNumb, numb));
n.setNumc(numCalculate(n.getNumc, numc));
n.setNumd(numCalculate(n.getNumd, numd));
}
save(list);//批量保存保存
} /**
* @param oldNum
* @param num
* @return
* @Description: 数值计算
* @Title: numCalculate
*/
private int numCalculate(int oldNum, String num) {
if (num.contains("+")) {
return oldNum + Integer.parseInt(num.split("\\+")[1]);
} else if (num.contains("-")) {
return oldNum - Integer.parseInt(num.split("\\+")[1]);
}
return oldNum;
}
update 表名 set numa=numa+1,numb=numb+1,numc=numc+1,numd=numd+1 where class_id like '1-2%'
t.numa=(tmp.numa-1),t.numb=(tmp.numb-1),t.numc=(tmp.numc-1),t.numd=(tmp.numd-1)
WHERE t.id=tmp.id