BaseController
package com.yunzainfo.common.base; import java.util.List; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.yunzainfo.common.pojo.BasePage; import com.yunzainfo.common.pojo.GridReturn; import com.yunzainfo.common.pojo.MsgReturn; public abstract class BaseController<T,C extends BasePage> { protected abstract BaseService<T,C> getBaseService(); @RequestMapping("/insert") @ResponseBody public MsgReturn insert(T t){ if(this.getBaseService().insert(t)>0){ return new MsgReturn(true, "新增成功!"); } return new MsgReturn(false, "新增失敗!"); } @RequestMapping("/delete") @ResponseBody public MsgReturn delete(T t){ if(this.getBaseService().delete(t)>0){ return new MsgReturn(true, "刪除成功!"); } return new MsgReturn(false, "刪除失敗!"); } @RequestMapping("/update") @ResponseBody public MsgReturn update(T t){ if(this.getBaseService().update(t)>0){ return new MsgReturn(true, "修改成功!"); } return new MsgReturn(false, "修改失敗!"); } @RequestMapping("/get") @ResponseBody public T get(T t){ return (T) this.getBaseService().get(t); } /** * 分頁查詢 * @param c 查詢參數類 * @return */ @RequestMapping("/findList") @ResponseBody public GridReturn findList(C c){ if (c.getLimit() != null||c.getLength() != null) { c.setLength(c.getLimit()); c.setLimit(c.getLimit()); c.setOracleEnd(c.getLimit() + c.getStart()); c.setOracleStart(c.getStart()); } List<T> lsit = this.getBaseService().findList(c); int count = this.getBaseService().getTotalCount(c); return new GridReturn(c.getDraw(), count, count, lsit); } }
BaseMapper
package com.yunzainfo.common.base; import java.util.List; public interface BaseMapper<T,C> { public int insert(T t); public int delete(T t); public int update(T t); public T get(T t); public List<T> findList(C c); public int getTotalCount(C c); }
BaseService
package com.yunzainfo.common.base; import java.util.List; public interface BaseService<T,C> { public int insert(T t); public int delete(T t); public int update(T t); public T get(T t); public List<T> findList(C c); public int getTotalCount(C c); }
BaseServiceImpl
package com.yunzainfo.common.base; import java.util.List; public abstract class BaseServiceImpl<T,C> { public abstract BaseMapper<T,C> getChildMapper(); public int insert(T t){ return this.getChildMapper().insert(t); } public int delete(T t){ return this.getChildMapper().delete(t); } public int update(T t){ return this.getChildMapper().update(t); } public T get(T t){ return this.getChildMapper().get(t); } public List<T> findList(C c){ return this.getChildMapper().findList(c); } public int getTotalCount(C c){ return this.getChildMapper().getTotalCount(c); } }
BasePage
package com.yunzainfo.common.pojo; public class BasePage { protected int start; protected Integer limit; protected Integer length; protected int draw; protected Integer oracleStart; protected Integer oracleEnd; public int getStart() { return start; } public void setStart(int start) { this.start = start; } public Integer getLimit() { return limit; } public void setLimit(Integer limit) { this.limit = limit; } public Integer getLength() { return length; } public void setLength(Integer length) { this.length = length; } public int getDraw() { return draw; } public void setDraw(int draw) { this.draw = draw; } public Integer getOracleStart() { return oracleStart; } public void setOracleStart(Integer oracleStart) { this.oracleStart = oracleStart; } public Integer getOracleEnd() { return oracleEnd; } public void setOracleEnd(Integer oracleEnd) { this.oracleEnd = oracleEnd; } }
GridReturn
package com.yunzainfo.common.pojo; import java.util.List; public class GridReturn { private int draw;//請求次數 private long recordsTotal;//總記錄數 private long recordsFiltered;//過濾後記錄數 private List<?> data; public GridReturn(int draw,long recordsTotal,long recordsFiltered,List<?> data){ this.data=data; this.draw=draw; this.recordsFiltered=recordsFiltered; this.recordsTotal=recordsTotal; } public int getDraw() { return draw; } public void setDraw(int draw) { this.draw = draw; } public long getRecordsTotal() { return recordsTotal; } public void setRecordsTotal(long recordsTotal) { this.recordsTotal = recordsTotal; } public long getRecordsFiltered() { return recordsFiltered; } public void setRecordsFiltered(long recordsFiltered) { this.recordsFiltered = recordsFiltered; } public List<?> getData() { return data; } public void setData(List<?> data) { this.data = data; } }
MsgReturn
package com.yunzainfo.common.pojo; public class MsgReturn { private boolean success; // 是否成功 private Object msg; // 返回消息 private Object otherObject;// 其他對象 public MsgReturn() { } /** * 是否更新成功的構造方法 * * @param success * 是否成功 * @param msg * 消息 */ public MsgReturn(boolean success, Object msg) { this.success = success; this.msg = msg; this.otherObject = ""; } /** * 是否更新成功的構造方法 * * @param success * 是否成功 * @param msg * 消息 * @param otherObject * 其他對象 */ public MsgReturn(boolean success, Object msg, Object otherObject) { this.success = success; this.msg = msg; this.otherObject = otherObject; } /** * 異常時的構造函數 * * @param errormsg * 異常消息 */ public MsgReturn(Object errormsg) { this.success = false; this.msg = false; this.otherObject = ""; } /** * 判斷是否成功 * * @return */ public boolean isSuccess() { return success; } /** * 設置返回是否成功的狀態 * * @param success */ public void setSuccess(boolean success) { this.success = success; } /** * 設置其他對象 * * @return */ public Object getOtherObject() { return otherObject; } /** * 獲取其他對象 * * @param otherObject */ public void setOtherObject(Object otherObject) { this.otherObject = otherObject; } /** * 獲取返回的消息 * * @return */ public Object getMsg() { return msg; } /** * 設置返回的消息 * * @param msg */ public void setMsg(Object msg) { this.msg = msg; } }