@RestController public class YourController { @Autowired private ScheduledExecutorService scheduledExecutorService; @Autowired private YourService yourService; @PostConstruct public void init() { scheduledExecutorService.scheduleAtFixedRate(new SaveResultTask(yourService), 0, 10, TimeUnit.MINUTES); } @GetMapping("/result") public List<Map<String, Object>> getResult() { return yourService.getResultFromNewTable(); } } getResult 不调用
时间: 2023-06-27 07:04:54 浏览: 126
在上述代码中,getResult 是一个 GET 请求的处理器方法,它返回 YourService 类中 getResultFromNewTable 方法的结果。如果 getResult 方法没有被调用,那么可能是因为它没有被前端或其他服务调用,或者可能是因为它没有正确地映射到正确的 URL。如果您想要使用此方法获取结果,请确保它被正确地映射到您的应用程序中,并确保您的前端或其他服务正确地调用了它。
相关问题
e; break; } } if (found) { toBeUpdated.add(current); } else { toBeInserted.add(current); } } // 批量插入 if (!toBeInserted.isEmpty()) { yourService.batchInsert(toBeInserted); } // 批量更新 if (!toBeUpdated.isEmpty()) { yourService.batchUpdate(toBeUpdated); } // 批量删除 if (!toBeDeleted.isEmpty()) { yourService.batchDelete(toBeDeleted); } lastResult = result; // 保存本次查询结果 } } 在Spring容器中配置ScheduledExecutorService: 复制 @Configuration @EnableScheduling public class ScheduleConfig { @Bean(name = "scheduledExecutorService") public ScheduledExecutorService scheduledExecutorService() { return Executors.newSingleThreadScheduledExecutor(); } } 在你的Controller中注入ScheduledExecutorService,启动定时任务: 复制 @RestController public class YourController { @Autowired private ScheduledExecutorService scheduledExecutorService; @Autowired private YourService yourService; @PostConstruct public void init() { scheduledExecutorService.scheduleAtFixedRate(new SaveResultTask(yourService), 0, 10, TimeUnit.MINUTES); } @GetMapping("/result") public List<Map<String, Object>> getResult() { return yourService.getResultFromNewTable(); } } 在YourService中使用MyBatis操作数据库,实现批量插入、更新、删除等方法。 这样就可以实现每10分钟保存一次接口查询结果到新表中,并且高效地查询新表返回数据给页面。同时也考虑了上一次查询结果和本次查询结果的差异情况,避免了重复插入和更新。 yourservice 代码怎么写
你可以在YourService中使用MyBatis操作数据库,实现批量插入、更新、删除等方法。以下是一个简单的示例代码:
```
@Service
public class YourService {
@Autowired
private YourMapper yourMapper;
public void batchInsert(List<YourEntity> entities) {
yourMapper.batchInsert(entities);
}
public void batchUpdate(List<YourEntity> entities) {
yourMapper.batchUpdate(entities);
}
public void batchDelete(List<Integer> ids) {
yourMapper.batchDelete(ids);
}
public List<Map<String, Object>> getResultFromNewTable() {
return yourMapper.getResultFromNewTable();
}
}
```
其中,YourMapper是一个使用MyBatis的Mapper接口,包含了数据库操作的方法。示例代码如下:
```
@Mapper
public interface YourMapper {
void batchInsert(@Param("entities") List<YourEntity> entities);
void batchUpdate(@Param("entities") List<YourEntity> entities);
void batchDelete(@Param("ids") List<Integer> ids);
List<Map<String, Object>> getResultFromNewTable();
}
```
在这个Mapper接口中,我们定义了批量插入、更新、删除和查询新表数据的方法,并使用了@param注解来指定方法参数的名称,方便MyBatis进行处理。
注意,这里的YourEntity是你要操作的实体类,包含了需要插入、更新的字段。你可以根据实际需求来定义这个实体类的属性。
package wffz.jxmjkh.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import wffz.common.contants.ConstantProperties; import wffz.jxmjkh.service.JxMjKhTxService; import javax.annotation.PostConstruct; import java.text.ParseException; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @RestController public class JxMjkhTxController { @Autowired private ScheduledExecutorService scheduledExecutorService; @Autowired private JxMjKhTxService jxMjKhTxService; @Autowired private ConstantProperties constantProperties; @PostConstruct public void init() { scheduledExecutorService.scheduleAtFixedRate(new SaveResultTask(jxMjKhTxService), 0, 1, TimeUnit.MINUTES); } @GetMapping("/saveTxData") public List<Map<String, Object>> getResult() throws ParseException { return jxMjKhTxService.selectJxMjkhTxData(constantProperties.getJsbh()); } }
这是一个使用 Spring Boot 框架开发的 RESTful 风格的接口控制器类。其中包含了以下注解:
- `@RestController`: 表示该类为一个 RESTful 接口控制器。
- `@Autowired`: 表示自动注入依赖对象。
- `@PostConstruct`: 表示在对象创建后进行初始化操作。
- `@GetMapping`: 表示该方法处理 HTTP GET 请求。
该类中包含的方法有:
- `init()`: 在对象创建后调用,启动一个定时任务,每分钟执行一次 `SaveResultTask` 类的 `run()` 方法。
- `getResult()`: 处理 HTTP GET 请求,返回经过处理后的结果列表。
阅读全文