hibernate update 操作

本文详细介绍了在Java Spring MVC框架下,如何实现数据的逻辑删除操作。通过前端Ajax请求,Controller层接收数据,Service层处理业务逻辑,最终在DAO层更新数据库中对应记录的状态。使用@Transactional注解确保数据一致性,并强调了实体类名称在更新语句中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

涉及到三层结构

  • 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值