为什么mybatis获取的序列值和Oracle数据库中的不一致?

3GNTHU4@AIDHLWV%$(`[5@M.png

@LC)8S0FC]H}MHMR1~T96]A.png

_~1}$(U42F6I(0EXFN)T)ZB.png

请问大佬这种怎么解决呢?

修改了很多次SQL语句和配置文件

这是我的映射文件

<?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="test">
 <insert id="insertStudent" parameterType="Student">
 INSERT INTO STUDENT_TAB(NAME,AGE,SCORE)VALUES(#{name},#{age},#{score})
 </insert>
 
 <insert id="insertStudentCache" parameterType="Student">
 <selectKey keyColumn="id" resultType="int" keyProperty="id" order="BEFORE">
        select STUDENT_SEQ.nextval id from dual
    </selectKey> 
 INSERT INTO STUDENT_TAB(NAME,AGE,SCORE)VALUES(#{name},#{age},#{score})
 </insert>
 </mapper>

这是我的测试代码

@Test
public void test02() {
    Student student = new Student("zhouqi2",30,98);
    System.out.println("添加前:"+student);
    dao.insertStudentCache(student);
    System.out.println("添加后:"+student);
} 

希望大佬告知此问题要怎么解决以及出现的原因

阅读 1.8k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题