账务账号的删除

本文介绍了一种不实际移除数据库记录的方法,即“软删除”机制。通过改变记录的状态而非直接删除,使得数据仍可追溯。文章详细展示了如何在Java环境中使用Struts框架和DAO模式实现这一功能。

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

考虑到数据的重要性和可追溯性,并不真正删除数据,而是通过一个状态来标识出来。

1,开通态、暂停态的数据可以删除
2,删除时,将状态置为删除态2,并且记载删除时间为系统时间

DAO:

public void delete(Integer id) throws DAOException {
	String sql = "update account set status='2', close_date=sysdate where id=?";
	
	Connection con = DBUtil.getConnection();
	
	try {
		PreparedStatement ps = con.prepareStatement(sql);
		ps.setObject(1, id);
		ps.executeUpdate();
	} catch (SQLException e) {
		e.printStackTrace();
		throw new DAOException("删除账务账号失败",e);
	} finally{
		DBUtil.close();
	}
}

Action:

public class DeleteAccountAction {
	
	public String execute(){
		
		IAccountDAO dao = DAOFactory.getAccountDAO();
		try {
			dao.delete(id);
			info.put("message", true);
			info.put("message", "删除账务账号成功");
		} catch (DAOException e) {
			e.printStackTrace();
			info.put("message", false);
			info.put("message", "系统发生错误");
		}
		return "success";
	}
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public Map<String, Object> getInfo() {
		return info;
	}
	public void setInfo(Map<String, Object> info) {
		this.info = info;
	}
	//input
	private Integer id;
	//output
	private Map<String, Object> info = new HashMap<String, Object>();
}

struts.xml

<!-- 删除Action -->
<action name="deleteAccount" class="netctoss.action.account.DeleteAccountAction">
	<result name="success" type="json">
		<param name="root">info</param>
	</result>
</action>

Jsp:

<s:if test="status==0">
	<input type="button" value="暂停" class="btn_pause" onclick="pauseAccount(<s:property value="id"/>);"/>
	<input type="button" value="修改" class="btn_modify" onclick="location.href='account_modi.html';" />
	<input type="button" value="删除" class="btn_delete" onclick="deleteAccount(<s:property value="id"/>);"/>
</s:if>
<s:else>
	<input type="button" value="开通" class="btn_start" onclick="startAccount(<s:property value="id"/>);"/>
	<input type="button" value="修改" class="btn_modify" onclick="location.href='account_modi.html';" />
	<input type="button" value="删除" class="btn_delete" onclick="deleteAccount(<s:property value="id"/>);"/>
</s:else>

//删除
function deleteAccount(id){
	var r = window.confirm("确定要删除此账号吗?");
	
	if(!r){
		return;
	}
	
	$.post(
		"deleteAccount",
		{"id":id},
		function(data){
			var info = data;
			$("#operate_msg").text(info.message);
			$("#operate_result_info").show();
			setTimeout(function(){
				toPage($("#page").val());
			},1000);
		}
	);
}	


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值