ในเฟรมเวิร์ก SSM มักจะใช้เรียกขั้นตอนที่เก็บไว้และการควบคุมธุรกรรมในฐานข้อมูล นี่คือตัวอย่างของการจัดเก็บเอกสารบางอย่าง:
1. รหัสขั้นตอนที่เก็บไว้ใน Oracle มีดังนี้ (ตรรกะหลักจะเพิ่ม 1 ในการเข้ารหัสเอกสารโดยอัตโนมัติและส่งคืนการเข้ารหัสเอกสาร):
สร้างหรือแทนที่ขั้นตอน "update_djbhzt" (p_gsid ใน varchar2, p_tblname ใน varchar2, newrecno number) เป็นเริ่มต้นอัปเดต bhdj set bhdj02 = bhdj02+1 โดยที่ GSXX01 = P_GSID และ BHDJ01 = P_TBLName; ถ้า sql%rowcount = 0 จากนั้นแทรกลงใน bhdj (gsxx01, bhdj01, bhdj02) ค่า (p_gsid, p_tblname, 1); สิ้นสุดถ้า; เลือก BHDJ02 เข้าสู่ newRecno จาก bhdj โดยที่ gsxx01 = p_gsid และ bhdj01 = p_tblname; จบ;
2. รหัสใน mybatis มีดังนี้:
<select id = "update_djbhzt" parameterType = "java.util.map" stementType = "callable"> <! [cdata [{โทร update_djbhzt (#{p_gsid, mode = in, jdbctype = varchar},#{p_tblname, mode = in, jdbctype = varchar},#{newRecno, โหมด = ออก, jdbcType = bigint}) 3. รหัสของเลเยอร์ DAO มีดังนี้:
แพ็คเกจ com.pcmall.dao.sale.stock; นำเข้า java.util.list; นำเข้า java.util.map; นำเข้า com.github.miemedev.mybatis.paginator.domain.pageBounds; นำเข้า com.pcmall.dao.common.basemapper; นำเข้า com.pcmall.domain.sale.stock.zcd; อินเทอร์เฟซสาธารณะ ZCDMapper ขยาย Basemapper <zcd> {void update_djbhzt (แผนที่ <สตริงวัตถุ> แผนที่); - 4. รหัสเลเยอร์บริการมีดังนี้:
อินเทอร์เฟซ:
แพ็คเกจ com.pcmall.service.sale.stock; นำเข้า java.util.list; นำเข้า com.github.miemedev.mybatis.paginator.domain.pageBounds; นำเข้า com.pcmall.domain.sale.order.hssncmmx; นำเข้า com.pcmall.domain.sale.stock.zcditem; นำเข้า com.pcmall.domain.sale.stock.zcditem; นำเข้า com.pcmall.domain.sale.user.user; นำเข้า com.pcmall.domain.vo.responsevo; นำเข้า com.pcmall.service.common.ibaseService; อินเทอร์เฟซสาธารณะ izcdservice ขยาย iBaseservice <zcd> {long getzcdno (สตริง GSXX01, String tablename); Responsevo savezcd (ZCD ZCD ผู้ใช้ผู้ใช้) โยนข้อยกเว้น; - คลาสการใช้งาน:
แพ็คเกจ com.pcmall.service.sale.stock.impl; นำเข้า java.text.simpledateFormat; นำเข้า java.util.arraylist; นำเข้า java.util.date; นำเข้า java.util.hashmap; นำเข้า java.util.list; นำเข้า java.util.map; นำเข้า Javax.annotation.Resource; นำเข้า org.apache.axis.holders.schemaholder; นำเข้า org.apache.commons.collections.collectionutils; นำเข้า org.springframework.stereotype.service; นำเข้า org.springframework.transaction.annotation.transactional; นำเข้า com.github.miemedev.mybatis.paginator.domain.pageBounds; นำเข้า com.google.common.collect.collections2; นำเข้า com.pcmall.common.utils.dateutils; นำเข้า com.pcmall.dao.sale.stock.zcdmapper; นำเข้า com.pcmall.dao.sale.stock.zcditemmapper; นำเข้า com.pcmall.domain.sale.order.hssncmmx; นำเข้า com.pcmall.domain.sale.promotion.hscxlx; นำเข้า com.pcmall.domain.sale.stock.zcd; นำเข้า com.pcmall.domain.sale.stock.zcditem; นำเข้า com.pcmall.domain.sale.stock.bo.ckspbo; นำเข้า com.pcmall.domain.sale.user.user; นำเข้า com.pcmall.domain.vo.responsevo; นำเข้า com.pcmall.service.common.abstractserviceimpl; นำเข้า com.pcmall.service.sale.order.iorderservice; นำเข้า com.pcmall.service.sale.stock.istockservice; นำเข้า com.pcmall.service.sale.stock.izcdservice; @Service คลาสสาธารณะ zcdserviceimpl ขยายบทคัดย่อ abstractserviceimpl <zcd> ใช้ izcdservice {@Resource ส่วนตัว ZCDMapper ZCDMApper; @Resource ส่วนตัว ZCDITEMMAPPER ZCDITEMMAPPER; @Resource ส่วนตัว istockservice stockserviceimpl; @Transactional (rollbackfor = exception.class) @Override ResponsEvo Savezcd (ZCD ZCD ผู้ใช้ผู้ใช้) โยนข้อยกเว้น {ResponsEvo ResponsEvo = new ResponsEvo (); zcd01 ยาว = getzcdno (zcd.getgsxx01 (), "zcd"); zcd.setzcd01 (ZCD01); zcd.setzcd05 (user.getryxx (). getryxx02 ()); zcd.setzcd06 (วันที่ใหม่ ()); วันที่ nowtime = new Date (); SimpledateFormat SDF = ใหม่ SimpleDateFormat ("HHMMSSMS"); ZCD.SETTIME01 (SDF.Format (ตอนนี้)); สำหรับ (zcditem zcditem: zcd.getzcditem ()) {zcditem.setzcd01 (zcd01); ZCDITEMMAPPER.INSERTSELECTIVE (ZCD); } zcdmapper.insertSelective (ZCD); Responsevo.setData (ZCD); Return ResponsEvo; } @Override สาธารณะยาว getzcdno (สตริง gsxx01, string tablename) {map <string, object> map = new hashmap <string, object> (); map.put ("p_gsid", gsxx01); map.put ("p_tblname", tablename); zcdmapper.update_djbhzt (แผนที่); Long newRecno = (ยาว) map.get ("newRecno"); กลับ Newrecno; - 5. รหัสเลเยอร์ควบคุมมีดังนี้:
แพ็คเกจ com.pcmall.controller.stock.zcd; นำเข้า java.util.list; นำเข้า Javax.annotation.Resource; นำเข้า javax.servlet.http.httpservletrequest; นำเข้า org.apache.commons.collections.collectionutils; นำเข้า org.slf4j.logger; นำเข้า org.slf4j.loggerfactory; นำเข้า org.springframework.stereotype.controller; นำเข้า org.springframework.web.bind.annotation.requestbody; นำเข้า org.springframework.web.bind.annotation.requestmapping; นำเข้า org.springframework.web.bind.annotation.requestparam; นำเข้า org.springframework.web.bind.annotation.responsebody; นำเข้า com.github.miemedev.mybatis.paginator.domain.pageBounds; นำเข้า com.pcmall.common.base.basecontroller; นำเข้า com.pcmall.domain.sale.stock.zcd; นำเข้า com.pcmall.domain.sale.stock.zcditem; นำเข้า com.pcmall.domain.sale.stock.bo.ckspdetailbo; นำเข้า com.pcmall.domain.sale.stock.bo.zcdbo; นำเข้า com.pcmall.domain.sale.system.gzzqx; นำเข้า com.pcmall.domain.sale.system.gzzqxkey; นำเข้า com.pcmall.domain.sale.system.ryxx; นำเข้า com.pcmall.domain.sale.user.czy; นำเข้า com.pcmall.domain.sale.user.user; นำเข้า com.pcmall.domain.vo.responsevo; นำเข้า com.pcmall.service.sale.stock.istockservice; นำเข้า com.pcmall.service.sale.stock.izcdservice; นำเข้า com.pcmall.service.sale.system.igzzqxservice; @Controller @RequestMapping ("/stock/zcd") คลาสสาธารณะ zcdcontroller ขยาย basecontroller {logger logger แบบคงที่ส่วนตัว = loggerFactory.getLogger (zcdcontroller.class); @Resource ส่วนตัว IZCDService ZCDSERVICICEIMPL; @Resource ส่วนตัว istockservice stockserviceimpl; @Resource ส่วนตัว igzzqxService gzzqxserviceimpl; @RequestMapping ("/savezcd") @ResponseBody ResponsEvo Savezcd (คำขอ httpservletRequest, @requestbody zcd zcd) {ResponsEvo ResponsEvo = new ResponsEvo (); ลอง {responsEvo = zcdserviceimpl.savezcd (zcd, getLoginuser ()); Responsevo.setsuccess (จริง); } catch (exception e) {logger.error ("", e); Responsevo.setsuccess (เท็จ); Responsevo.seterrormsg (! "". เท่ากับ (e.getMessage ())? e .getMessage (): "ข้อยกเว้นพื้นหลัง"); } return responsevo; - 6. รหัสเลเยอร์ JS front-end มีดังนี้:
ฟังก์ชั่นบันทึก () {$ ("#save"). addClass ("ปิดใช้งาน"); if ($ ("#selshck"). val () == "") {layer.msg ('โปรดกรอกในคลังสินค้าที่ได้รับ', {icon: 5}); $ ("#save"). RemoveClass ("ปิดใช้งาน"); กลับ; } if ($ ("#selshck"). val () == $ ("#selfhck"). val ()) {layer.msg ('คลังสินค้าจัดส่งไม่สามารถเหมือนกันกับคลังสินค้าที่ได้รับ', {ไอคอน: 5}); $ ("#save"). RemoveClass ("ปิดใช้งาน"); กลับ; } 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") ค้นหา ("tr") แต่ละ (ฟังก์ชั่น () {var zcditem = {}; var arrrtd = $ (นี่) .children (); zcditem.spxx01 = $ .trim (arrtd.eq (0) zcditem.zcdi01 = $ .trim (arrtd.eq (7) .Text ()); $ ("save"). RemoveClass ("ปิดการใช้งาน"); $ .trim (arrtd.eq (2). เด็ก (". zcdi03"). val ()); zcditem.gsxx01 = $ ("#gsxx01"). val (); if (flag == 1) {layer.msg ('โปรดป้อนจำนวน reposses', {icon: 5}); $ ("#save"). RemoveClass ("ปิดใช้งาน"); กลับ; } if (zcditemary.length == 0) {layer.msg ('โปรดป้อนข้อมูลผลิตภัณฑ์สำหรับ reposses', {icon: 5}); $ ("#save"). RemoveClass ("ปิดใช้งาน"); กลับ; } /* else {สำหรับ (var i = 0; i <zcditemary; i ++) {ถ้า (zcditemary [i] .zcdi03 == "") {layer.msg ('โปรดป้อนจำนวน repos', {icon: 5}); $ ("#save"). RemoveClass ("ปิดใช้งาน"); กลับ; }}} */$ .ajax ({url: "$ {ctx}/stock/zcd/savezcd", ข้อมูล: $ .json.decode (param), contentType: "แอปพลิเคชัน/json", พิมพ์: "โพสต์" $ ("#zcd01"). val (data.data.zcd01); layer.msg ('ไม่สามารถกำหนดคลังสินค้าการถ่ายโอนใบเสร็จรับเงิน' + data.errormsg, {icon: 5}); -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น