2 qq 22701921 qq_22701921 于 2017.01.17 10:27 提问

mybaitis插入返回主键的时候报错,显示ORA-00923:

sql语句:

 <insert id="insert" parameterType="com.zbiti.itop.complain.entity.Complain">
        <![CDATA[
            insert into MSS_FAULT
            (mf_id,mf_Sys_Type,mf_Major,mf_Detail)
            values (SEQ_MSS_FAULT.nextval,#{mfSysType},#{mfMajor},#{mfDetail})
        ]]>

        <selectKey order="AFTER" keyProperty="mfId" resultType="java.lang.String">  

            select LAST_INSERT_ID()
        </selectKey>  
    </insert>

下面是报错:

 2017-01-17 10:19:35.935 [http-bio-8080-exec-8] DEBUG com.zbiti.base.spring.EmossExceptionHandler(133) - Resolving exception from handler [public void com.zbiti.itop.complain.controller.ComplainController.add(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) throws java.lang.Exception]: org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database.  Cause: org.apache.ibatis.executor.ExecutorException: Error selecting key or setting result to parameter object. Cause: java.sql.SQLSyntaxErrorException: ORA-00923: 未找到要求的 FROM 关键字
Caused by: org.apache.ibatis.executor.ExecutorException: Error selecting key or setting result to parameter object. Cause: java.sql.SQLSyntaxErrorException: ORA-00923: 未找到要求的 FROM 关键字


set get 方法也都提供了,请问这个是怎么回事儿?谢谢

1个回答

JE_GE
JE_GE   2017.01.17 10:59
 select LAST_INSERT_ID()这个是mysql
 oracle是  SELECT SEQ_MC_MEMB.CURRVAL  AS VALUE FROM DUAL 
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Mybatis_插入数据后返回主键ID_返回数据字段与类中字段相对应
出现的错误
mybatis 插入操作,insert_获取非自增主键的值
1:MySQL 2:oracle
Mybatis添加记录,返回主键id
Role.java实体类public class Role implements Serializable { private String roleId; private String name; private Integer status; public String getRoleId() { return roleId; } public void se...
解决getJdbcTemplate往oracle数据库中插入数据返回主键出错问题
我们使用Spring中的JdbcDaoSupport往Mysql中插入数据并返回主键代码,我们使用的mysql数据库,主键在数据库中设置为自增长:该类继承自JdbcDaoSupport,所以能直接使用getJdbcTemplate() public int saveUser(String userName,int age,String password){ getJdbcTemplate
Mybatis 插入数据时返回主键的方法
mysql插入数据后获得主键 针对自增主键的表,在插入时不需要主键,而是在插入过程自动获取一个自增的主键,比如MySQL, &amp;lt;insert id=&quot;add&quot; parameterType=&quot;vo.Category&quot; useGeneratedKeys=&quot;true&quot; keyProperty=&quot;id&quot;&amp;gt; insert into category (name_zh, parent_id, ...
Java中用Mybatis插入mysql报主键重复问题的解决方法
首先思路是这样的,先去数据表里面去找有没有这个主键的数据(如果有会有返回值,如果没有则返回null),如果有则对该条数据进行更新操作,如果没有,则对数据表进行插入操作。原来数据表中有这些数据。数据表对应的bean的结构如下:public class DataBean { String key; String value; public DataBean() { ...
Web开发——如何使JDBC插入数据的时候返回自动增长的主键值
通常插入数据时的代码如下: ... String sql = "insert into table (name) values(?)"; PreparedStatement pstmt = conn.prepareStatement(sql); // 如果使用静态的SQL,则不需要动态插入参数 pstmt.setString(1, name); pstmt.executeUpdate();
Mybatis——【亲测】mybatis使用注解方式插入数据后获取自增长的主键值
自己踩过的坑,查了好久,终于发现解决方法。 步骤有三: 1. 写SQL,但不要自己插入主键值 2. 配置@Options(useGeneratedKeys=true, keyProperty="对象.属性") 这个的作用是设置是否使用JDBC的getGenereatedKeys()方法获取主键并赋值到keyProperty设置的对象的属性中,说白了就是把自增长的主键值赋值给对象相应的属性
用mybatis注解方式返回insert时的主键
 一共有两种方式,注解方式是 :@SelectKey(statement=&quot;call identity()&quot;, keyProperty=&quot;nameId&quot;, before=false, resultType=int.class)   另一种方法: 如果不用注解就在mybatis的xml里,在insert的标签里添加&amp;lt;seleckey&amp;gt;&amp;lt;/selectkey&amp;gt; ...
orcale插入数据 返回插入数据的主键
在使用orcale数据库时。有时候我们有这样一种需求,插入一条数据,想要立即返回插入的主键。且表的主键为自增长。 实现思路为: 1.先定义一个序列 ,例如我这里定义了一个se_test1的序列。 2.  使用select se_test1.nextval FROM DUAL 返回se_test1的我们需要的值。每使用一次返回的值不一样,使用10次,se_test1.currval的值增加了1