您的位置:首页 > 数据库

关于数据库分表和后台操作(会一直补充)

2015-07-20 08:48 375 查看

   ps:关于电商订单这块,订单表的设计应该是主表是保留订单相关属性,比如订单id,创建时间等等,客户信息,地址信息,物流信息等单独建表,形成 one-many,订单操作完,可以归档数据。所以说我们公司现在的表结构设计就是他妈的操蛋!

   定时器使用注解:@Scheduled(cron = "0 0/1 * * * ?") //每隔一分钟执行一次

 今天看到同事写的分表操作,先暂时记录下一些东西,后期会陆续补充。

/**
*
* 方法描述:定时执行订单超过24小时,自动将订单表的状态改为取消
* 创建时间:2015-5-26 下午7:51:26
*/
@Scheduled(cron = "0 0/10 * * * ?")
public void AutoModifyOrderStatusToCancel() {
//调用定时执行订单超过24小时,自动将订单表的状态改为取消service
this.orderTimeService.AutoModifyOrderStatusToCancel();
}

 

<select id="selectAutoCancelOrderId" resultMap="BaseResultMap">
SELECT  boc.ORDER_ID, #{_parameter} AS tableNum
<if test="_parameter==-1">
FROM BIZ_ORDER boc
</if>
<if test="_parameter!=-1">
FROM BIZ_ORDER_${_parameter} boc
</if>
WHERE NOW()-INTERVAL 24  hour>ADD_DATE AND ORDER_STATUS=1
</select>

 

/**
*
* 方法描述:自动执行更新超过24小时订单状态改为取消
* 创建时间:2015-5-26 下午7:36:39
*/
public void AutoModifyOrderStatusToCancel(){

//根据物理分表,循环更新每一张表中的订单状态
for(int tableNum=-1;tableNum<10;tableNum++){

List<OrderTimerVO> orderList=this.baseDao.selectList("selectAutoCancelOrderId",tableNum, OrderTimerVO.class);

//自动执行更新超过24小时订单状态改为取消
if(orderList.size()>0){
if(tableNum==-1){
int result=this.baseDao.update("updateOrderStatusToCancelId",orderList,OrderTimerVO.class);
}
else if(tableNum==0){
int result=this.baseDao.update("updateOrderStatusToCancelId0",orderList,OrderTimerVO.class);
}
else if(tableNum==1){
int result=this.baseDao.update("updateOrderStatusToCancelId1",orderList,OrderTimerVO.class);
}
else if(tableNum==2){
int result=this.baseDao.update("updateOrderStatusToCancelId2",orderList,OrderTimerVO.class);
}
else if(tableNum==3){
int result=this.baseDao.update("updateOrderStatusToCancelId3",orderList,OrderTimerVO.class);
}
else if(tableNum==4){
int result=this.baseDao.update("updateOrderStatusToCancelId4",orderList,OrderTimerVO.class);
}
else if(tableNum==5){
int result=this.baseDao.update("updateOrderStatusToCancelId5",orderList,OrderTimerVO.class);
}
else if(tableNum==6){
int result=this.baseDao.update("updateOrderStatusToCancelId6",orderList,OrderTimerVO.class);
}
else if(tableNum==7){
int result=this.baseDao.update("updateOrderStatusToCancelId7",orderList,OrderTimerVO.class);
}
else if(tableNum==8){
int result=this.baseDao.update("updateOrderStatusToCancelId8",orderList,OrderTimerVO.class);
}
else if(tableNum==9){
int result=this.baseDao.update("updateOrderStatusToCancelId9",orderList,OrderTimerVO.class);
}
}

}
}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: