本文只是一个项目开发过程中的整理笔记,主要介绍两种后台保存数据思路。
总体架构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);
}
}