Dans le cadre SSM, il est souvent utilisé pour appeler les procédures stockées et le contrôle des transactions dans la base de données. Voici un exemple de stockage d'un certain document:
1. Le code de procédure stocké dans Oracle est le suivant (la logique principale ajoute automatiquement 1 au codage du document et renvoie le codage du document):
Créer ou remplacer la procédure "Update_djbhzt" (p_gsid dans Varchar2, p_tblname dans Varchar2, NewRecno Out Number) comme commence à mettre à jour Bhdj set bhdj02 = bhdj02 + 1 où gsxx01 = p_gsid et bhdj01 = p_tblname; Si SQL% ROWCOUNT = 0 alors insérez dans les valeurs BHDJ (GSXX01, BHDJ01, BHDJ02) (p_gsid, p_tblname, 1); terminer si; Sélectionnez Bhdj02 dans newrecno dans Bhdj où gsxx01 = p_gsid et bhdj01 = p_tblname; fin;
2. Le code dans Mybatis est le suivant:
<select id = "update_djbhzt" ParameterType = "java.util.map" statetype = "callable"> <! [cdata [{appel Update_djbhzt (# {p_gsid, mode = in, jdbcType = varchar}, # {p_tblname, mode = in, jdbcType = varchar}, # {newrecno, mode = out, jdbcType = bigInt})}]]> </lect> 3. Le code de la couche DAO est le suivant:
package com.pcmall.dao.sale.stock; Importer java.util.list; importation java.util.map; import com.github.miemedev.mybatis.paginator.domain.pageBounds; import com.pcmall.dao.common.basemapper; import com.pcmall.domain.sale.stock.zcd; L'interface publique ZCDMapper étend BasEmapper <ZCD> {void update_djbhzt (map <string, object> map); } 4. Le code de couche de service est le suivant:
interface:
package com.pcmall.service.sale.stock; Importer 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; Importer com.pcmall.domain.vo.Responsevo; Importer com.pcmall.service.common.ibaseService; L'interface publique IZCDService étend IbasesService <ZCD> {long getZCDNO (String gsxx01, String TableName); ResponseVo SavezCD (ZCD ZCD, utilisateur utilisateur) lève une exception; } Classe d'implémentation:
package com.pcmall.service.sale.stock.impl; import java.text.simpledateFormat; import java.util.arraylist; Importer java.util.date; import java.util.hashmap; Importer java.util.list; importation java.util.map; import javax.annotation.resource; import org.apache.axis.holders.schemaholder; import org.apache.commons.collections.collectionutils; import org.springframework.sterreotype.service; import org.springframework.transaction.annotation.transactional; import com.github.miemedev.mybatis.paginator.domain.pageBounds; import com.google.common.collect.collections2; import com.pcmall.common.utils.dateutils; Importer com.pcmall.dao.sale.stock.zcdmapper; Importer 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; Importer 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 étend AbstractServiceImpl <ZCD> implémente izcdService {@Resource private zcdmapper zcdmapper; @Resource Private ZcDitemMapper ZCDitemMapper; @Resource Private IstockService StockServiceImpl; @Transactional (rollbackFor = exception.class) @Override public réponseVo Savezcd (zcd zcd, utilisateur utilisateur) lève exception {réponsevo réponseVo = new Responsevo (); Long zcd01 = getzcdno (zcd.getgsxx01 (), "zcd"); zcd.setzcd01 (zcd01); zcd.setzcd05 (user.getRyxx (). getryxx02 ()); zcd.setzcd06 (new Date ()); Date NowTime = new Date (); SimpledateFormat sdf = new SimpledateFormat ("hhmmssms"); zcd.setTime01 (sdf.format (maintenant temps)); for (zcDitem zcDitem: zcd.getzcDitem ()) {zcDitem.setzcd01 (zcd01); zcDitemMapper.InsertSelective (ZCD); } zcdmapper.insertSelective (zcd); Responsevo.setData (ZCD); Retour ResponseVo; } @Override public long getZcdno (String gsxx01, string TableName) {map <string, object> 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"); retourner newrecno; }} 5. Le code de couche de contrôle est le suivant:
package com.pcmall.controller.stock.zcd; Importer java.util.list; import javax.annotation.resource; Importer javax.servlet.http.httpservletRequest; import org.apache.commons.collections.collectionutils; import org.slf4j.logger; import org.slf4j.loggerfactory; import org.springframework.sterreotype.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; Importer com.pcmall.domain.sale.stock.bo.ckspdetailbo; import com.pcmall.domain.sale.stock.bo.zcdbo; import com.pcmall.domain.sale.system.gzzqx; import com.pcmall.domain.sale.system.gzzqxkey; import com.pcmall.domain.sale.system.ryxx; import com.pcmall.domain.sale.user.czy; import com.pcmall.domain.sale.user.user; Importer 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 étend BasEController {private static logger = loggerFactory.getLogger (zcdController.class); @Resource private izcdService zcDServiceImpl; @Resource Private IstockService StockServiceImpl; @Resource privé igzzqxService gzzqxServiceImpll; @RequestMapping ("/ Savezcd") @ResponseBody Public ResponseVo Savezcd (requête HttpServLeRequest, @Requestbody ZCD ZCD) {Responsevo ResponseVo = new ResponseVo (); try {réponsevo = zcdServiceImpl.Savezcd (zcd, getLogInuser ()); ResponseVo.SetSuccess (true); } catch (exception e) {logger.error ("", e); ResponseVo.SetSuccess (false); Responsevo.SetterRormsg (! "". Equals (e.getMessage ())? E .GetMessage (): "Exception de fond"); } return ResponseVo; }} 6. Le code de couche JS frontal est le suivant:
fonction sauvegarde () {$ ("# sauvegarde"). addClass ("Disabled"); if ($ ("# Selshck"). Val () == "") {couche.msg ('Veuillez remplir l'entrepôt de réception', {icon: 5}); $ ("# SAVE"). RemoveClass ("Disabled"); retour; } if ($ ("# selshck"). Val () == $ ("# selfhck"). Val ()) {couche.msg ('Entrepôt d'expédition ne peut pas être le même que l'entrepôt de réception', {icon: 5}); $ ("# SAVE"). RemoveClass ("Disabled"); retour; } var param = {}; param.bm01 = $ ("# selbm"). att ("Valuea"); param.zcd02 = $ ("# selfhck"). att ("Valuea"); param.zcd03 = $ ("# selshck"). att ("Valuea"); param.zcd04 = $ ("# zcd04"). Val (); param.gsxx01 = $ ("# gsxx01"). Val (); var zcDitemary = []; var flag = 0; $ ("# tbody1"). find ("tr"). Chaque (fonction () {var zcDitem = {}; var arrrtd = $ (this) .children (); zcDitem.spxx01 = $ .trim (arrtd.eq (0) .text ()); zcDitem.wldw01 =. zcDitem.zcdi01 = $ .trim (arrtd.eq (7) .text ()); $ ("# sauvegarder"). $ .trim (arrtd.eq (2) .children (". zcdi03"). Val ()); zcDitem.gsxx01 = $ ("# gsxx01"). Val (); if (flag == 1) {couche.msg ('Veuillez saisir le nombre de reprises', {icon: 5}); $ ("# SAVE"). RemoveClass ("Disabled"); retour; } if (zcditemary.length == 0) {couche.msg ('Veuillez saisir les informations du produit pour les reprises', {icon: 5}); $ ("# SAVE"). RemoveClass ("Disabled"); retour; } / * else {for (var i = 0; i <zcDitemary; i ++) {if (zcDitemary [i] .zcdi03 == "") {couche.msg ('s'il vous plaît entrez le nombre de repos', {icon: 5}); $ ("# SAVE"). RemoveClass ("Disabled"); retour; }}} * / $ .ajax ({url: "$ {ctx} / stock / zcd / sauvezcd", data: $ .json.decode (param), contentType: "application / json", type: "post", dataType: "json", réussite: function (data) {if (data.SucCess) { $ (# zcd01 "). Val (data.data.zcd01); $ (" # zcd05 "). couche.msg ('Impossible de formuler le réception de transfert de l'entrepôt' + data.errormsg, {icon: 5}); $ ("# sauvegarder"). }Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.