问题描述
- oracle数据插入类型对应java
-
private int msg_id; //主键 private long party_id; //用户id private int event_trigid; private String area_Code; //地区编号 private String send_Nbr; //发送短信号码 private int nbr_Spec; private String is_AppRoved; private String msg_content; //短信内容 private Date star_Date; //开始时间 private Date expire_Date; //失效时间 private String deal_flag; //处理标记
这是相对应的java类型
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" ><insert id="insertSendVerCode" parameterType="com.weixin.common.model.verCode.SendCodeModel"> <selectKey resultType="java.lang.Long" keyProperty="msg_id" order="BEFORE"> Select seq_msg_to_send From Dual </selectKey> Insert Into MSG_BUFFER (MSG_ID, PARTY_ID, MSG_EVENT_TRIGID, AREA_CODE, SEND_NBR, NBR_SPEC, IS_APPROVED, MSG_CONTENT, START_DT, EXPIRE_DT,DEAL_FLAG, STAFF_ID) Values (#{msg_ia},#{party_id},#{event_trigid},#{area_Code},#{send_Nbr},#{nbr_Spec},#{is_AppRoved},#{msg_content},#{star_Date},#{expire_Date},#{deal_flag}) </insert>
然而就报错了,
18:55:08.810 INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader 315 loadBeanDefinitions - Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
18:55:09.050 INFO org.springframework.jdbc.support.SQLErrorCodesFactory 126 - SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
解决方案
oracle数据类型和对应的java类型
oracle数据类型和对应的java类型
oracle数据类型和对应的java类型
解决方案二:
数据库中的字段名:MSG_EVENT_TRIGID
你定义的字段名:event_trigid
按照你的字段名到数据库里查找就会出问题。
还有其他字段也是
解决方案三:
问题已解决,
1、主键序列查询语句没加nextVal
2、event_trigid和partyid长度过长,int无法接收。这才导致语句在plsql中可以执行,mybatis无法执行。
但,只要是mapper.xml对应的mapper路径正确,哪怕这个xml里面的sql不写也是会报相同的错误。
解决方案四:
number使用long就可以了