国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

mybatis+mysql 使用存儲(chǔ)過(guò)程生成流水號(hào)的實(shí)現(xiàn)代碼

2024-07-24 13:15:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

使用mysql/35147.html">存儲(chǔ)過(guò)程,在操作數(shù)據(jù)庫(kù)時(shí)開啟事務(wù),避免并發(fā)時(shí)同時(shí)操作造成數(shù)據(jù)重復(fù)

mysql,mybatis,生成,存儲(chǔ)過(guò)程,存儲(chǔ)過(guò)程生成流水號(hào),生成流水號(hào)

CREATE DEFINER=`root`@`localhost` PROCEDURE `GetSerialNo`(IN tsCode VARCHAR(50),OUT result VARCHAR(200) )BEGIN  DECLARE tsValue VARCHAR(50);  DECLARE tdToday VARCHAR(20);   DECLARE nowdate VARCHAR(20);   DECLARE tsQZ  VARCHAR(50);  DECLARE t_error INTEGER DEFAULT 0;  DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1;  START TRANSACTION;   /* UPDATE sys_sno SET sValue=sValue WHERE sCode=tsCode; */  SELECT sValue INTO tsValue FROM sys_sno WHERE sCode=tsCode;   SELECT sQz INTO tsQZ FROM sys_sno WHERE sCode=tsCode ;  -- 因子表中沒有記錄,插入初始值    IF tsValue IS NULL THEN    SELECT CONCAT(DATE_FORMAT(NOW(),'%y%m'),'0001') INTO tsValue;    UPDATE sys_sno SET sValue=tsValue WHERE sCode=tsCode ;    SELECT CONCAT(tsQZ,tsValue) INTO result;   ELSE        SELECT SUBSTRING(tsValue,1,4) INTO tdToday;    SELECT CONVERT(DATE_FORMAT(NOW(),'%y%m'),SIGNED) INTO nowdate;   -- 判斷年月是否需要更新   IF tdToday = nowdate THEN     SET tsValue=CONVERT(tsValue,SIGNED) + 1;    ELSE     SELECT CONCAT(DATE_FORMAT(NOW(),'%y%m') ,'0001') INTO tsValue ;    END IF;    UPDATE sys_sno SET sValue =tsValue WHERE sCode=tsCode;    SELECT CONCAT(tsQZ,tsValue) INTO result;   END IF;   IF t_error =1 THEN   ROLLBACK;   SET result = 'Error';   ELSE   COMMIT;   END IF;   SELECT result ;  END;daoInteger getFaultNo(Map<String, String> parameterMap);

xml

<update id="getFaultNo" parameterMap="getFaultMap" statementType="CALLABLE">  CALL GetSerialNo(?,?) </update> <!--  parameterMap.put("tsCode", 0);  parameterMap.put("result", -1);  --> <parameterMap type="java.util.Map" id="getFaultMap">  <parameter property="tsCode" mode="IN" jdbcType="VARCHAR"/>  <parameter property="result" mode="OUT" jdbcType="VARCHAR"/> </parameterMap>

調(diào)用

Map<String, String> parameterMap = new HashMap<String, String>();  parameterMap.put("tsCode", "a");  parameterMap.put("result", "-1");  faultMapper.getFaultNo(parameterMap);  // insert 故障日志 (主表)  if (!parameterMap.get("result").equals("-1") &&     !parameterMap.get("result").equals("Error")) {   //成功  } else {   throw new RuntimeException();  }

總結(jié)

以上所述是小編給大家介紹的mybatis+mysql 使用存儲(chǔ)過(guò)程生成流水號(hào)的實(shí)現(xiàn)代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)VeVb武林網(wǎng)網(wǎng)站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到MYSQL教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 邯郸市| 丹江口市| 大渡口区| 合作市| 普定县| 潍坊市| 旺苍县| 张北县| 额济纳旗| 崇阳县| 永春县| 威信县| 灌阳县| 临邑县| 福清市| 通河县| 舒城县| 黄浦区| 宜阳县| 安图县| 会东县| 连云港市| 关岭| 江都市| 巨野县| 松滋市| 镇安县| 孙吴县| 临猗县| 泸定县| 宁南县| 藁城市| 武川县| 荔波县| 新河县| 西盟| 宿州市| 陕西省| 子长县| 吴江市| 四平市|