涉及到三层结构
-
Controller(控制逻辑)层:它是负责在页面和程序之间传输数据的,还有作用是做页面跳转。
页面由用户填写表单数据,点击提交按钮,页面的表单数据由传入Service层。 -
DAO层(数据库操作层):负责对数据向数据库增删改查的操作。
-
Service层(业务逻辑层):负责的是对数据的处理。如果没有数据处理任务的话,此层只做单纯的数据传递作用,而后又到了DAO层。
参考了https://blog.youkuaiyun.com/qq_38881474/article/details/96447154?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-0.pc_relevant_default&spm=1001.2101.3001.4242.1&utm_relevant_index=3
感谢
要做的是在table中删除一行记录,然而在数据库中并不是真的删除,因此只是将数据库table中column removed置为1(0-有效,1-无效)
首先是前端ajax
function cancel(id){
if(confirm("确定要取消吗")){
$("#"+id).remove();
$.ajax({
url: '${base}industry/cancelRecord',
data: {id: id},
async: false,
type: "post",
success: function(){
alert("取消成功");
},
error: function(){
alert("取消失败");
}
});
}
}
html中取消<button>中添加onclick事件
Controller类
@Controller
@RequestMapping("/form")
public class FormManaController {
public Logger logger = Logger.getLogger(FormManaController.class);
@Autowired
private FormManaService formManaService;
@Autowired
private RestManaService restManaService;
//取消申请
@ResponseBody
@RequestMapping("/cancelRecord")
public void cancelRecord(String id) {
Map<String, Object> map = new HashMap<String, Object>();
try {
restManaService.removeById(Integer.valueOf(id));
} catch (Exception e) {
e.printStackTrace();
map.put("Exception", e.getMessage());
map.put("code", "500");
}
}
}
Service类
//根据id取消业务
@Service
@Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
public class RestManaService {
@Autowired
private RestManaDAO restManaDAO;
@Autowired
private McdjQueryDAO mcdjQueryDAO;
public void removeById(Integer id){
restManaDAO.removeRecord(id);
}
}
DAO层
@Repository
public class RestManaDAO extends BaseDAO {
/**
* 取消业务
* APP_COMMON_OPNN_INFO
* AppCommonOpnnInfo
* @param id
* @return
*/
@Transactional
public int removeRecord(Integer id){
Query query = em.createQuery("update AppCommonOpnnInfo set removed=1 where id=:id");
query.setParameter("id", id);
return query.executeUpdate();
}
}
这一层注意:
1.@Transactional注解
2.update后面不是表名,而是实体类的类名
识别大小写!!!
over