若依定时任务

先整理一下思路:

假设写一个商品订单完成后自动评论的定时任务。

思路:先将数据库满足订单已完成但是尚未评论的订单id找出来。

之后对未评论的订单进行评论。

开始操作:

数据库建两张表:

//订单表

若依定时任务_第1张图片

//评论表

若依定时任务_第2张图片

 因为只做定时评论,本次直接写mapper语句和实现类impl。

mapper中方法名:dsid 定时id     xml中将符合(订单已成功完成,但未评论的订单id找出来 接着在impl实现类中调用mapper,调用mapper的dsid (即定时id方法),将订单已成功完成,但未评论的订单id找出来)(对应订单表)

接着在mapper中添加方法:tjpl 添加评论     根据上文的dsid定时id得到了已完成但未评论的订单id 在对应的xml文件中,将评论表中dd_id订单id符合要求的数据增加数据。(对应评论表)

接着在mapper中添加方法:xgddzt 修改订单状态   将上文提到的已增加数据的dd_id行内订单评论

ddpl状态改为已完成评论的状态。(对应订单表)

最后,在实现类中,先将mapper注入,调用mapper方法得到已成功完成,但未评论的订单id,

然后循环,得出符合条件的订单id——增加数据——更改状态。最后打印输出一下。

打开若依网站,系统监控——定时任务——新增(调用目标字符串为:impl实现类中

@Component("dingshi")注解内地址加方法名。
例如:dingshi.dspl
@Component("dingshi")
@Service
public class DsplImpl {
//    注入mapper
  @Autowired
  public DsplMapper dsplMapper;
//  调用mapper中的方法查询已完成待评论的订单数据
  public void dspl(){
    List dsid = dsplMapper.dsid();
    if(dsid!=null){
    for(String s:dsid){
     dsplMapper.tjpl(0,s);
      dsplMapper.xgddzt(s);
    }}
      System.out.println("调用的");
//    for(int i=0;i 
  

cron表达式为设置定时频率,可直接在浏览器查找即可。

最后在idea控制台即可查看定时效果。

mapper表

@Mapper
public interface DsplMapper {
//    方法名:dsid 定时id  xml中将符合(订单已成功完成,但未评论的订单id找出来   接着在impl实现类中调用mapper,调用mapper的dsid (即定时id方法),将订单已成功完成,但未评论的订单id找出来)
    public List dsid();
//    方法名:tjpl  添加评论   根据上文的dsid定时id得到了已完成但未评论的订单id     在对应的xml文件中,将评论表中dd_id订单id符合要求的数据增加数据。(对应评论表)
    public int tjpl(@Param("star") int pl_star, @Param("ddid") String dd_id);
//    方法名:xgddzt 修改订单状态
  将上文提到的已增加数据的dd_id行内订单评论ddpl状态改为已完成评论的状态。(对应订单表)
    public int xgddzt(@Param("dd_id") String dd_id);

对应mapper的mapperxml sql语句

若依定时任务_第3张图片

写完sql语句,放到数据库连接工具中,查看sql语句是否编写正确。

实现类impl

若依定时任务_第4张图片

 在idea控制台即可查看定时效果。

你可能感兴趣的:(java,win10配mysql环境,java,开发语言,后端)