Java后端完成保存或更新功能笔记整理

本文只是一个项目开发过程中的整理笔记,主要介绍两种后台保存数据思路。
总体架构Spring+SpringMVC+Hibernate+Shiro+Oracle

思路一:

实体类
AACMyfocusTab

@Entity
@Table(name="AAC_MYFOCUS_TAB")
//我的关注
public class AACMyfocusTab implements Serializable{
    private String id;//主键id
    private String adnum;//域账号
    private String wfcode;//流程编号
    private String updateTime;//更新时间
    private String formSource;//所属系统
    private String shortName;// 具体名称 
    private String type;//所属领域 

    public AACMyfocusTab() {
    }
    
    @Id
    @Column(name = "ID", unique = true, length = 100)
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
    @Column(name = "ADNUM", length = 100)
    public String getAdnum() {
        return adnum;
    }

    public void setAdnum(String adnum) {
        this.adnum = adnum;
    }
    @Column(name = "WFCODE", length = 100)
    public String getWfcode() {
        return wfcode;
    }

    public void setWfcode(String wfcode) {
        this.wfcode = wfcode;
    }
    @Column(name = "UPDATETIME", length = 100)
    public String getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(String updateTime) {
        this.updateTime = updateTime;
    }
    @Column(name = "FORM_SOURCE", length = 100)
    public String getFormSource() {
        return formSource;
    }

    public void setFormSource(String formSource) {
        this.formSource = formSource;
    }
    @Column(name = "SHORT_NAME", length = 100)
    public String getShortName() {
        return shortName;
    }

    public void setShortName(String shortName) {
        this.shortName = shortName;
    }
    @Column(name = "TYPE", length = 100)
    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
}

onTheWayFocus.jsp

//将关注信息保存到数据库表AAC_MYFOCUS_TAB中
var selectedRows = window.frames[0].$("#dg").datagrid('getChecked');
var formSource = [];
var wfcode = [];
var shortName = [];
var type = [];
for(i=0;i<selectedRows.length;i++){
       formSource.push(selectedRows[i].BELONGSYSTEM||"");
       wfcode.push(selectedRows[i].PROCESSNUMBER||"");
	   shortName.push(selectedRows[i].PROCESSNAME||"");
	   type.push(selectedRows[i].BELONGSFIELD||"");
}
				 
$.ajax({
			url : '${pageContext.request.contextPath}/bpmportal/BpmMyFocusController/focus.action',
			data : {
					formSource:formSource,
					wfcode:wfcode,
					shortName:shortName,
					type:type
				   },
			type : 'post',
			async : false,
			dataType : 'json',
			success : function(data) {
						 if(data.state){
						      	$("#Dlg_Position").dialog("close");
						       	$.messager.alert({title:"提示",msg:"保存关注成功!"});  
						 }else{
						       	$.messager.alert({title:"提示",msg:"保存关注出错,请联系管理员!"});  
						      }     
					  },
			error : function() {
						$.messager.alert({title:"提示",msg:"保存出错,请联系管理员!"});
							}
					});   	    				  

BpmMyFocusController

@Controller
@RequestMapping("/bpmportal/BpmMyFocusController")
public class BpmMyFocusController extends BaseWebController {
	private static final Logger LOG = LoggerFactory.getLogger(BpmMyFocusController.class);
	@Autowired
	private BpmMyFocusService bpmMyFocusService;

	// 我的关注保存功能
	@RequestMapping("/focus")
	@ResponseBody
	public Map<String, Object> MyFocus(@RequestParam("formSource[]") List<String> formSource,
			@RequestParam("wfcode[]") List<String> wfcode, @RequestParam("shortName[]") List<String> shortName,
			@RequestParam("type[]") List<String> type) {
		Map<String, Object> results = new HashMap<String, Object>();
		try {
			bpmMyFocusService.saveOrUpdateFocus(formSource, wfcode, shortName, type);
			results.put("state", true);
			results.put("msg", "我的关注保存成功!");
		} catch (Exception e) {
			e.printStackTrace();
			results.put("state", false);
			results.put("msg", "我的关注保存失败:" + e.getMessage());
		}
		return results;
	}
}	

BpmMyFocusService

@Service
public class BpmMyFocusService extends BaseDataService {
	// 保存我的关注
	public void saveOrUpdateFocus(List<String> formSource, List<String> wfcode, List<String> shortName,List<String> type) {
		//String userName = (String) SecurityUtils.getSubject().getSession().getAttribute(HttpSessionKey.CURRENT_USER_NUM);//empid
		String userName = (String) SecurityUtils.getSubject().getSession().getAttribute(HttpSessionKey.CURRENT_USER_NAME);//adNum
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
		String dateTime = df.format(new Date());// 获取当前日期
		List<AACMyfocusTab> data = new ArrayList<>();
		for (int i = 0; i < formSource.size(); i++) {
			AACMyfocusTab  aacMyfocusTab= new AACMyfocusTab();
			String uuid = UUID.randomUUID().toString().replace("-", "");
			aacMyfocusTab.setId(uuid);
			aacMyfocusTab.setAdnum(userName);
			if (!formSource.isEmpty()) {
				aacMyfocusTab.setFormSource(formSource.get(i));
			} else {
				aacMyfocusTab.setFormSource("");
			}
			if (!shortName.isEmpty()) {
				aacMyfocusTab.setShortName(shortName.get(i));
			} else {
				aacMyfocusTab.setShortName("");
			}
			
            if (!type.isEmpty()) {
            	aacMyfocusTab.setType(type.get(i));
			} else {
				aacMyfocusTab.setType("");
			}
			
            if (!wfcode.isEmpty()) {
            	aacMyfocusTab.setWfcode(wfcode.get(i));
			} else {
				aacMyfocusTab.setWfcode("");
			}
            aacMyfocusTab.setUpdateTime(dateTime);
            //不保存已经关注过的流程
			String sql = "select * from AAC_MYFOCUS_TAB where WFCODE = '"+wfcode.get(i)+"' " +" and ADNUM = '"+userName+"'";
            List list = gdao.executeJDBCSqlQuery(sql);
			if(list.size() <= 0){
				data.add(aacMyfocusTab);
			}
		}
		gdao.save(data);
	}
}	

思路二:

onTheWayFocus.jsp

//将关注信息保存到数据库表AAC_MYFOCUS_TAB中
            var selectedRows = window.frames[0].$("#dg").datagrid('getChecked');
            var flag= 0;
            var hiddenArr = ['PU01','HR19','HR20','HR23','HR26']; //过滤敏感流程

            for(var i=0;i<selectedRows.length;i++){
                if($.inArray(selectedRows[i].PROCESSNUMBER,hiddenArr) >= 0){
                    flag= 1;
                }
            }
            if(selectedRows.length == 0 || flag == 1){
                $.messager.alert({
                    title : '温馨提示',
                    msg : "请先勾选再操作且不能选择采购订单评审(PU01)、离职申请(HR19)、转正申请(HR20)、合同续签申请(HR23)、待录用人员信息系统(HR26)!"
                });
            }else{
                var list = [];
                for(var i=0;i<selectedRows.length;i++){
                    var aacMyfocusTab = {};
                    var row = selectedRows[i];
                    aacMyfocusTab.formSource = row.BELONGSYSTEM||"";
                    aacMyfocusTab.wfcode = row.PROCESSNUMBER||"";
                    aacMyfocusTab.shortName = row.PROCESSNAME||"";
                    aacMyfocusTab.type = row.BELONGSFIELD||"";
                    list.push(aacMyfocusTab);
                }

                $.ajax({
                    url : '${pageContext.request.contextPath}/bpmportal/BpmMyFocusController/focus.action',
                    data : JSON.stringify(list),
                    type : 'post',
                    async : false,
                    dataType : 'json',
                    contentType : 'application/json;charset=utf-8',
                    success : function(data) {
                        if(data.state){
                            $("#Dlg_Position").dialog("close");
                            $.messager.alert({title:"提示",msg:"保存关注成功!"});
                        }else{
                            $.messager.alert({title:"提示",msg:"保存关注出错,请联系管理员!"});
                        }
                    },
                    error : function() {
                        $.messager.alert({title:"提示",msg:"保存出错,请联系管理员!"});
                    }
                });

            }

BpmMyFocusController

@Controller
@RequestMapping("/bpmportal/BpmMyFocusController")
public class BpmMyFocusController extends BaseWebController {
	private static final Logger LOG = LoggerFactory.getLogger(BpmMyFocusController.class);
	@Autowired
	private BpmMyFocusService bpmMyFocusService;
    private static final Logger LOG = LoggerFactory.getLogger(BpmMyFocusController.class);
    @Autowired
    private BpmMyFocusService bpmMyFocusService;

    // 我的关注保存功能
    @RequestMapping("/focus")
    @ResponseBody
    public Map<String, Object> MyFocus(@RequestBody List<AACMyfocusTab> AACMyfocusTabs) {
        Map<String, Object> results = new HashMap<>();
        try {
            bpmMyFocusService.saveOrUpdateFocus(AACMyfocusTabs);
            results.put("state", true);
            results.put("msg", "我的关注保存成功!");
        } catch (Exception e) {
            e.printStackTrace();
            results.put("state", false);
            results.put("msg", "我的关注保存失败:" + e.getMessage());
        }
        return results;
    }
}    

BpmMyFocusService

@Service
public class BpmMyFocusService extends BaseDataService {
// 保存我的关注
    public void saveOrUpdateFocus(List<AACMyfocusTab> AACMyfocusTabs) {
        String userName = (String) SecurityUtils.getSubject().getSession().getAttribute(HttpSessionKey.CURRENT_USER_NAME);//adNum
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
        String dateTime = df.format(new Date());// 获取当前日期
        for (int i = 0; i < AACMyfocusTabs.size(); i++) {
            AACMyfocusTab aacMyfocusTab = AACMyfocusTabs.get(i);
            String formSource = aacMyfocusTab.getFormSource();
            String wfcode = aacMyfocusTab.getWfcode();
            String shortName = aacMyfocusTab.getShortName();
            String type = aacMyfocusTab.getType();
            String hql = "from AACMyfocusTab where adnum = '" + userName + "' and wfcode = '" + wfcode + "' and formSource = '" + formSource + "'";
            List<AACMyfocusTab> result = gdao.queryHQL(hql);
            if (result.size() > 0) {
                aacMyfocusTab = result.get(0);
                aacMyfocusTab.setId(aacMyfocusTab.getId());
            } else {
                aacMyfocusTab = new AACMyfocusTab();
                String uuid = UUID.randomUUID().toString().replace("-", "");
                aacMyfocusTab.setId(uuid);
            }
            aacMyfocusTab.setAdnum(userName);
            aacMyfocusTab.setFormSource(formSource);
            aacMyfocusTab.setShortName(shortName);
            aacMyfocusTab.setType(type);
            aacMyfocusTab.setWfcode(wfcode);
            aacMyfocusTab.setUpdateTime(dateTime);
            gdao.saveOrUpdate(aacMyfocusTab);
          }
}             
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值