java - MyBatis 中未使用存储过程将数据插入数据库

标签 java database stored-procedures mybatis

我正在尝试使用 My batis 中的存储过程在数据库中插入或更新数据,但查询已成功运行,但数据未插入数据库中。你能帮我一下吗?

下面是调用mapper.xml中的存储过程:

<select id="saveExaminations" resultMap="examinationForm">
        {call SaveExaminationForms(12,31,null, 1, 100.00,0,0, 1, 0, 1, 1, 1, 1, 1, 1000001,0,1,123456,0,1,BCA,0000000003,2011,
        fraud,allahabad,null,Hindi,1,2,1,8)}
    </select>

下面是mapper.xml中的结果图

<resultMap id="examinationForm" type="ExaminationForm">
        <result property="id" column="EXAMINATIONFORM_ID"/>
        <result property="studentId" column="EXAMINATIONFORM_STUDENTID"/>
        <result property="examinationId" column="EXAMINATIONFORM_EXAMINATIONID"/>
        <result property="isSubmitted" column="EXAMINATIONFORM_ISSUBMITTED"/>
        <result property="feeAmount" column="EXAMINATIONFORM_FEEAMOUNT"/>
        <result property="paymentTypeId" column="EXAMINATIONFORM_PAYMENTTYPEID"/>
        <result property="bankId" column="EXAMINATIONFORM_BANKID"/>
        <result property="isClass10CertAttached" column="EXAMINATIONFORM_ISCLASS10CERTATTACHED"/>
        <result property="isClass12CertAttached" column="EXAMINATIONFORM_ISCLASS12CERTATTACHED"/>
        <result property="isUGCertAttached" column="EXAMINATIONFORM_ISUGCERTATTACHED"/>
        <result property="isPGCertAttached" column="EXAMINATIONFORM_ISPGCERTATTACHED"/>
        <result property="isReservationCategoryCertAttached" column="EXAMINATIONFORM_ISRESERVATIONCATEGORYCERTATTACHED"/>
        <result property="isDomicileCertAttached" column="EXAMINATIONFORM_ISDOMICILECERTATTACHED"/>
        <result property="isMigrationCertAttached" column="EXAMINATIONFORM_ISMIGRATIONCERTATTACHED"/>
        <result property="MigrationCertificateNo" column="EXAMINATIONFORM_MIGRATIONCERTIFICATENO"/>
        <result property="isBankChallanAttached" column="EXAMINATIONFORM_ISBANKCHALLANATTACHED"/>
        <result property="isEmployerNOCAttached" column="EXAMINATIONFORM_ISEMPLOYERNOCATTACHED"/>
        <result property="EmployerNOCNumber" column="EXAMINATIONFORM_EMPLOYERNOCNUMBER"/>
        <result property="isAnyOtherAttachment" column="EXAMINATIONFORM_ISANYOTHERATTCHMENT"/>
        <result property="wasPunishedForUFM" column="EXAMINATIONFORM_WASPUNISHEDFORUFM"/>
        <result property="uFMExamName" column="EXAMINATIONFORM_UFMEXAMNAME"/>
        <result property="uFMRollNo" column="EXAMINATIONFORM_UFMROLLNO"/>
        <result property="uFMYear" column="EXAMINATIONFORM_UFMYEAR"/>
        <result property="uFMPunishmentDetails" column="EXAMINATIONFORM_UFMPUNISHMENTDETAILS"/>
        <result property="uFMCentreName" column="EXAMINATIONFORM_UFMCENTRENAME"/>
        <result property="otherDegreeParticulars" column="EXAMINATIONFORM_OTHERDEGREEPARTICULARS"/>
        <result property="mediumOfExamination" column="EXAMINATIONFORM_MEDIUMOFEXAMINATION"/>
        <result property="candidateCategory" column="EXAMINATIONFORM_CANDIDATECATEGORY"/>
        <result property="createdDate" column="EXAMINATIONFORM_CREATEDDATE"/>
        <result property="sessionYearId" column="EXAMINATIONFORM_SESSIONYEARID"/>
        <result property="classId" column="EXAMINATIONFORM_CLASSID"/>
        <result property="courseId" column="EXAMINATIONFORM_COURSEID"/>
        <result property="subjectName" column="EXAMINATIONFORM_SUBJECTNAME"/>
    </resultMap>

下面是我的 dao 文件中的代码

public void saveExaminations() throws PersistenceException{
        SqlSession session = sf.openSession();
        try{
            System.out.println("Before calling save procedure in dao file :");
            System.out.println("output of save : " + session.insert("saveExaminations"));
            System.out.println("after calling save procedure in dao file:");

        }catch(Exception e ){
            System.out.println("error in executing submit data");
        }
        finally{
            session.close();
        }
    }

任何人都知道为什么在调用 saveExaminations() 后该数据没有插入到数据库中。

最佳答案

SqlSession session = sf.openSession(); 不会创建自动提交 session 。 创建一个使用

SqlSession session = sf.openSession(true);

或者最后使用session.commit()

关于java - MyBatis 中未使用存储过程将数据插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20716757/

相关文章:

java - 在 web-xml 和文件系统 (tomcat) 中添加新的 servlet 类

java - 为什么没有调用run方法?

java - C# 中 Choco 的类似库

database - Cassandra 建模问题

sql - 如何在Microsoft PowerBI中使用SQL Server存储过程?

MySQL存储过程-区分note和error

java - 如何将谷歌地图 Android 应用程序导入到另一个 Android 项目中?

mysql - 如何通过从另一列插入一定数量的单词来填充一列?

php - PHP警告:mysqli_num_rows()和数据库创建

mysql - 错误代码 : 1111. 在存储过程中使用组函数自动创建触发器无效