Dalam kerangka SSM, sering digunakan untuk memanggil prosedur tersimpan dan kontrol transaksi dalam database. Berikut adalah contoh menyimpan dokumen tertentu:
1. Kode Prosedur Tersimpan di Oracle adalah sebagai berikut (logika utama secara otomatis menambahkan 1 ke pengkodean dokumen dan mengembalikan pengkodean dokumen):
Buat atau ganti prosedur "update_djbhzt" (p_gsid di varchar2, p_tblname di varchar2, newRecno out number) Saat mulai perbarui bhdj set bhdj02 = bhdj02+1 di mana gsxx01 = p_gsid dan bhdj01 = p_tblname; Jika sql%rowcount = 0 maka masukkan ke dalam nilai bhdj (gsxx01, bhdj01, bhdj02) (p_gsid, p_tblname, 1); berakhir jika; Pilih bhdj02 ke newRecno dari bhdj di mana gsxx01 = p_gsid dan bhdj01 = p_tblname; akhir;
2. Kode di mybatis adalah sebagai berikut:
<Pilih id = "update_djbhzt" parameTerType = "java.util.map" pernyataantype = "callable"> <! [cdata [{call Update_djbhzt (#{p_gsid, mode = in, jdbctype = varchar},#{p_tblname, mode = in, jdbctype = varchar},#{newRecno, mode = out, jdbctype = BigInt})}]]> </select> 3. Kode lapisan DAO adalah sebagai berikut:
paket com.pcmall.dao.sale.stock; impor java.util.list; impor java.util.map; impor com.github.miemedev.mybatis.paginator.domain.pagebounds; impor com.pcmall.dao.common.basemapper; impor com.pcmall.domain.sale.stock.zcd; antarmuka publik Zcdmapper memperluas Basemapper <ZCD> {void update_djbhzt (peta <String, Object> peta); } 4. Kode Layer Layanan adalah sebagai berikut:
Antarmuka:
paket com.pcmall.service.sale.stock; impor java.util.list; impor com.github.miemedev.mybatis.paginator.domain.pagebounds; impor com.pcmall.domain.sale.order.hssncmmx; impor com.pcmall.domain.sale.stock.zcditem; impor com.pcmall.domain.sale.stock.zcditem; impor com.pcmall.domain.sale.user.user; impor com.pcmall.domain.vo.responsevo; impor com.pcmall.service.common.ibaseservice; antarmuka publik IZCDService memperluas ibaseservice <ZCD> {long getzcdno (String GSXX01, String Tablename); ResponseVo SaveZCD (ZCD ZCD, pengguna pengguna) melempar pengecualian; } Kelas Implementasi:
paket com.pcmall.service.sale.stock.impl; impor java.text.simpledateFormat; impor java.util.arraylist; impor java.util.date; impor java.util.hashmap; impor java.util.list; impor java.util.map; impor javax.annotation.Resource; impor org.apache.axis.holders.schemaholder; impor org.apache.commons.collections.collectionutils; impor org.springframework.stereotype.service; impor org.springframework.transaction.annotation.transactional; impor com.github.miemedev.mybatis.paginator.domain.pagebounds; impor com.google.common.collect.collections2; impor com.pcmall.common.utils.dateutils; impor com.pcmall.dao.sale.stock.zcdmapper; impor com.pcmall.dao.sale.stock.zcditemmapper; impor com.pcmall.domain.sale.order.hssncmmx; impor com.pcmall.domain.sale.promotion.hscxlx; impor com.pcmall.domain.sale.stock.zcd; impor com.pcmall.domain.sale.stock.zcditem; impor com.pcmall.domain.sale.stock.bo.ckspbo; impor com.pcmall.domain.sale.user.user; impor com.pcmall.domain.vo.responsevo; impor com.pcmall.service.common.abstractserviceImpl; impor com.pcmall.service.sale.order.iorderservice; impor com.pcmall.service.sale.stock.istockservice; impor com.pcmall.service.sale.stock.izcdservice; @Service Public Class ZCDServiceImpl memperluas AbstractServiceImpl <Zcd> mengimplementasikan IZCDService {@Resource Private ZCDMapper ZCDMapper; @Resource private zcditemmapper zcditemmapper; @Resource Private ISTockService StockServiceImpl; @Transactional (rollbackfor = exception.class) @Override Public ResponseVo saveZCD (ZCD ZCD, pengguna pengguna) melempar Exception {responseVo responseVo = new responseVo (); Long zcd01 = getzcdno (zcd.getgsxx01 (), "zcd"); ZCD.SetZCD01 (ZCD01); zcd.setzcd05 (user.getryxx (). getryxx02 ()); zcd.setzcd06 (tanggal baru ()); Tanggal sekarang = tanggal baru (); SimpleDateFormat SDF = new SimpleDateFormat ("HHMMSSMS"); zcd.settime01 (sdf.format (sekarang waktu)); untuk (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) {peta <string, object> peta = new HashMap <string, object> (); peta.put ("p_gsid", gsxx01); peta.put ("p_tblname", tableName); zcdmapper.update_djbhzt (peta); Long newRecno = (long) map.get ("newRecno"); mengembalikan newrecno; }} 5. Kode Lapisan Kontrol adalah sebagai berikut:
paket com.pcmall.controller.stock.zcd; impor java.util.list; impor javax.annotation.Resource; impor javax.servlet.http.httpservletRequest; impor org.apache.commons.collections.collectionutils; impor org.slf4j.logger; impor org.slf4j.loggerFactory; impor org.springframework.stereotype.controller; Impor org.springframework.web.bind.annotation.RequestBody; impor org.springframework.web.bind.annotation.requestmapping; impor org.springframework.web.bind.annotation.requestparam; impor org.springframework.web.bind.annotation.responseBody; impor com.github.miemedev.mybatis.paginator.domain.pagebounds; impor com.pcmall.common.base.basecontroller; impor com.pcmall.domain.sale.stock.zcd; impor com.pcmall.domain.sale.stock.zcditem; impor com.pcmall.domain.sale.stock.bo.ckspdetailbo; impor com.pcmall.domain.sale.stock.bo.zcdbo; impor com.pcmall.domain.sale.system.gzzqx; impor com.pcmall.domain.sale.system.gzzqxkey; impor com.pcmall.domain.sale.system.ryxx; impor com.pcmall.domain.sale.user.czy; impor com.pcmall.domain.sale.user.user; impor com.pcmall.domain.vo.responsevo; impor com.pcmall.service.sale.stock.istockservice; impor com.pcmall.service.sale.stock.izcdservice; impor com.pcmall.service.sale.system.igzzqxservice; @Controller @RequestMapping ("/stock/zcd") kelas publik ZCDController memperluas Basecontroller {private static Logger Logger = LoggerFactory.getLogger (zcdController.class); @Resource private IZCDService ZCDServiceImpl; @Resource Private ISTockService StockServiceImpl; @Resource private igzzqxservice gzzqxserviceImpl; @RequestMapping ("/savezcd") @ResponseBody Public ResponseVo savezcd (permintaan httpservletRequest, @RequestBody ZCD ZCD) {ResponseVo ResponseVo = New ResponsEvo (); coba {responseVo = zcdserviceImpl.savezcd (zcd, getLoginUser ()); responseVo.setsuccess (true); } catch (Exception e) {logger.error ("", e); responseVo.setsuccess (false); responseVo.seterrormsg (! "". Equals (e.getMessage ())? e .getMessage (): "latar belakang pengecualian"); } return responseVo; }} 6. Kode lapisan JS front-end adalah sebagai berikut:
function save () {$ ("#save"). AddClass ("Disable"); if ($ ("#selshck"). val () == "") {layer.msg ('Harap isi gudang penerima', {ikon: 5}); $ ("#save"). RemoveClass ("Disabled"); kembali; } if ($ ("#selshck"). val () == $ ("#selfhck"). val ()) {layer.msg ('Gudang pengiriman tidak dapat sama dengan gudang penerima', {ikon: 5}); $ ("#save"). RemoveClass ("Disabled"); kembali; } var param = {}; param.bm01 = $ ("#selbm"). attr ("valua"); param.zcd02 = $ ("#selfhck"). attr ("valua"); param.zcd03 = $ ("#selshck"). attr ("valua"); param.zcd04 = $ ("#zcd04"). val (); param.gsxx01 = $ ("#gsxx01"). val (); var zcditemary = []; Var Flag = 0; $ ("#tBody1"). find ("tr"). masing -masing (fungsi () {var zcditem = {}; var arrrtd = $ (this) .children (); zcditem.spxx01 = $ .trim (arrtd.eq (0) .text ()); zcditem. $ .trim (arrtd.eq (6) .text ()); Ikon: 5}); $ .TRIM (ARRTD.EQ (2) .Children (". ZCDI03"). Val ()); zcditem.gsxx01 = $ ("#gsxx01"). val (); if (flag == 1) {layer.msg ('Harap masukkan jumlah reposses', {ikon: 5}); $ ("#save"). RemoveClass ("Disabled"); kembali; } if (zcditemary.length == 0) {layer.msg ('Harap masukkan informasi produk untuk reposses', {ikon: 5}); $ ("#save"). RemoveClass ("Disabled"); kembali; } /* else {for (var i = 0; i <zcditemary; i ++) {if (zcditemary [i] .zcdi03 == "") {layer.msg ('Harap masukkan jumlah repo', {Icon: 5}); $ ("#save"). RemoveClass ("Disabled"); kembali; }}} */$ .Ajax ({url: "$ {ctx}/stock/zcd/savezcd", data: $ .json.decode (param), contentType: "Application/JSON", ketik: "POST", DATATYPE: "JSON", SUCCESS: FUNCUS (data) {if (data). $ ("ZCD01"). Val (Data.Data.ZCD01); Layer.msg ('Gagal merumuskan tanda terima transfer gudang' + data.errormsg, {ikon: 5}); }Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.