使用MyBatis中的存储过程不会将数据插入数据库中

时间:2013-12-21 07:38:20

标签: 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

<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()之后这个数据没有插入db中。

1 个答案:

答案 0 :(得分:1)

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

SqlSession session = sf.openSession(true);

或者最后使用session.commit()