Im SSM -Framework wird es häufig verwendet, um gespeicherte Verfahren und Transaktionsregelung in der Datenbank aufzurufen. Hier ist ein Beispiel für die Speicherung eines bestimmten Dokuments:
1. Der gespeicherte Prozedurcode in Oracle ist wie folgt (die Hauptlogik fügt automatisch 1 zum Dokumentcodierung hinzu und gibt die Dokumentcodierung zurück):
Erstellen oder ersetzen Sie die Prozedur "update_djbhzt" (p_gsid in varchar2, p_tblname in varchar2, newRecno out number) als Start -Aktualisierung von Bhdj set bhdj02 = bhdj02+1 wobei gsxx01 = p_gsid und bhdj01 = p_tblname; wenn Ende wenn; Wählen Sie Bhdj02 in Newrecno aus Bhdj, wobei gsxx01 = p_gsid und bhdj01 = p_tblname; Ende;
2. Der Code in MyBatis lautet wie folgt:
<select id = "updjbhzt" parameterType = "java.util.map" AnweisungType = "Callable"> <! [cdata [{Call Update_djbhzt (#{p_gsid, modus = in, jdbctype = varchar},#{p_tblname, modus = in, jdbctype = varchar},#{newRecno, modus = out, jdbctype = bigint})}]] 3. Der Code der DAO -Schicht lautet wie folgt:
Paket com.pcmall.dao.sale.stock; importieren java.util.list; import Java.util.map; import com.github.miemedev.mybatis.paginator.domain.pagebounds; import com.pcmall.dao.common.basemapper; import com.pcmall.domain.sale.stock.zcd; öffentliche Schnittstelle ZCDMapper erweitert Basemapper <zcd> {void update_djbhzt (map <String, Objekt> Karte); } 4. Der Service -Layer -Code lautet wie folgt:
Schnittstelle:
Paket com.pcmall.service.sale.stock; importieren java.util.list; import com.github.miemedev.mybatis.paginator.domain.pagebounds; import com.pcmall.domain.sale.order.hssncmmx; import com.pcmall.domain.sale.stock.zcditem; import com.pcmall.domain.sale.stock.zcditem; import com.pcmall.domain.sale.user.user; import com.pcmall.domain.vo.responsevo; import com.pcmall.service.common.ibaseService; public interface izcdService erweitert iBaseService <ZCD> {Long Getzcdno (String GSXX01, String TabLename); ResponseVo SaveZCD (ZCD ZCD, Benutzerbenutzer) löst eine Ausnahme aus. } Implementierungsklasse:
Paket com.pcmall.service.sale.stock.impl; Java.Text.SimpledateFormat importieren; Import Java.util.ArrayList; import Java.util.date; import Java.util.hashMap; importieren java.util.list; import Java.util.map; import Javax.annotation.Resource; import org.apache.axis.holderers.schemaholder; import org.apache.commons.collections.collectionutils; import org.springframework.stereotype.service; import org.springframework.transaction.annotation.transactional; import com.github.miemedev.mybatis.paginator.domain.pagebounds; import com.google.common.collect.collections2; com.pcmall.common.utils.dateutils; import com.pcmall.dao.sale.stock.zcdmapper; import com.pcmall.dao.sale.stock.zcditemmapper; import com.pcmall.domain.sale.order.hssncmmx; import com.pcmall.domain.sale.promotion.hscxlx; import com.pcmall.domain.sale.stock.zcd; import com.pcmall.domain.sale.stock.zcditem; import com.pcmall.domain.sale.stock.bo.ckspbo; import com.pcmall.domain.sale.user.user; import com.pcmall.domain.vo.responsevo; import com.pcmall.service.common.abstractServiceImpl; import com.pcmall.service.sale.order.iorderservice; import com.pcmall.service.sale.stock.istockservice; import com.pcmall.service.sale.stock.izcdService; @Service Public Class ZCDServiceImpl erweitert abstractServiceImpl <zcd> implementiert izcdService {@resource private zcdmapper ZCDMapper; @Resource Private ZCDItemMapper ZCDItemMapper; @Resource Private iStockService StockServiceImpl; @Transactional (RollbackFor = exception.class) @Override public responseVo SaveZCD (ZCD ZCD, Benutzerbenutzer) löst Ausnahme aus {responseVo responsevo = new responseVo (); Long zcd01 = getZcdno (ZCD.getGSXX01 (), "ZCD"); ZCD.SetZCD01 (ZCD01); ZCD.SetZCD05 (user.getRyxx (). getRyxx02 ()); ZCD.SetZCD06 (neues Datum ()); Datum jetzt time = new Date (); SimpleDateFormat SDF = new SimpledateFormat ("HHMMSSMS"); zcd.settime01 (sdf.format (nun time)); für (ZCDITEM ZCDITEM: ZCD.getZCDItem ()) {ZCDItem.setZCD01 (ZCD01); ZCDItemMapper.insertSelective (ZCD); } ZCDMapper.insertSelective (ZCD); responsevo.setData (ZCD); return responsevo; } @Override public Long GetZCDNO (String GSXX01, String Tablename) {map <String, Objekt> map = new HashMap <String, Object> (); map.put ("p_gsid", gsxx01); map.put ("p_tblname", tableName); zcdmapper.update_djbhzt (MAP); Long NewRecno = (Long) map.get ("NewRecno"); kehren Sie Newrecno zurück; }} 5. Der Steuerungscode lautet wie folgt:
Paket com.pcmall.controller.stock.zcd; importieren java.util.list; import Javax.annotation.Resource; importieren javax.servlet.http.httpServletRequest; import org.apache.commons.collections.collectionutils; import org.slf4j.logger; import org.slf4j.loggerfactory; import org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.requestbody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.requestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.github.miemedev.mybatis.paginator.domain.pagebounds; import com.pcmall.common.base.basecontroller; import com.pcmall.domain.sale.stock.zcd; import com.pcmall.domain.sale.stock.zcditem; com.pcmall.domain.sale.stock.bo.ckspdetailbo; import com.pcmall.domain.sale.stock.bo.zcdbo; com.pcmall.domain.sale.system.gzzqx; import com.pcmall.domain.sale.system.gzzqxkey; com.pcmall.domain.sale.system.ryxx; import com.pcmall.domain.sale.user.czy; import com.pcmall.domain.sale.user.user; import com.pcmall.domain.vo.responsevo; import com.pcmall.service.sale.stock.istockservice; import com.pcmall.service.sale.stock.izcdService; import com.pcmall.service.sale.system.igzzqxService; @Controller @RequestMapping ("/stock/zcd") public class zcdController erweitert BaseController {private static Logger logger = loggerfactory.getLogger (ZCDController.class); @Resource Private IZCDService ZCDServiceImpl; @Resource Private iStockService StockServiceImpl; @Resource private igzzqxService gzzqxServiceImpl; @RequestMapping ("/savezcd") @RespondeBody public responsevo SaveZCD (httpServletRequest Request, @RequestBody ZCD ZCD) {responsevo responsevo = new responsevo (); try {responsevo = zcdServiceImpl.savezcd (ZCD, getLoginUser ()); responsevo.setsuSccess (true); } catch (Ausnahme e) {logger.Error ("", e); responsevo.setsuSccess (false); responsevo.seterrormsg (! ". } return responsevo; }} 6. Der Front-End-JS-Schichtcode lautet wie folgt:
Funktion Save () {$ ("#speichern"). AddClass ("deaktiviert"); if ($ ("#selshck"). val () == "") {layer.msg ('Bitte füllen Sie das Empfangslager aus', {icon: 5}); $ ("#speichern"). removeclass ("deaktiviert"); zurückkehren; } if ($ ("#selshck"). val () == $ ("#selfhck"). val ()) {layer.msg ('Versandlager kann nicht das gleiche wie das empfangende Lager sein', {icon: 5}); $ ("#speichern"). removeclass ("deaktiviert"); zurückkehren; } var param = {}; param.bm01 = $ ("#selbm"). attr ("Valuea"); param.zcd02 = $ ("#selfhck"). attr ("Valuea"); param.zcd03 = $ ("#selshck"). attr ("Valuea"); param.zcd04 = $ ("#ZCD04"). Val (); param.gsxx01 = $ ("#gsxx01"). Val (); var zcditemary = []; var flag = 0; $ ("#tbody1"). find ("tr"). Jede (Funktion () {var zcditem = {}; var arrrtd = $ (this) .Children (); $ .trim (arrtd.eq (6) .Text ()); ICON: 5}); $ .trim (arrtd.eq (2) .Children (". ZCDI03"). Val ()); ZCDITEM.GSXX01 = $ ("#gsxx01"). Val (); if (flag == 1) {layer.msg ('Bitte geben Sie die Anzahl der Wiederholungen ein', {icon: 5}); $ ("#speichern"). removeclass ("deaktiviert"); zurückkehren; } if (zcditemary.length == 0) {layer.msg ('Bitte geben Sie die Produktinformationen für Reposses', {icon: 5}); $ ("#speichern"). removeclass ("deaktiviert"); zurückkehren; } /* else {for (var i = 0; i <zcditemary; i ++) {if (zcditemary [i] .zcDi03 == "") {layer.msg ('Bitte geben Sie die Anzahl der Repos ein', {icon: 5}); $ ("#speichern"). removeclass ("deaktiviert"); zurückkehren; }}} */$ .ajax ({url: "$ {ctx}/stile/zcd/savezcd", Daten: $ .json.decode (param), contentType: "application/json", type: "post", Datentyp: "JSON", Erfolg: Funktion (Data) {if (Data.Success) {{data.success) {{data.succes) $ ("#ZCD01"). Layer.msg ('nicht zu formulieren, um die Lagerübertragung zu formulieren. }Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.