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]
数据库中的字段名:MSG_EVENT_TRIGID
你定义的字段名:event_trigid
按照你的字段名到数据库里查找就会出问题。
还有其他字段也是
问题已解决,
1、主键序列查询语句没加nextVal
2、event_trigid和partyid长度过长,int无法接收。这才导致语句在plsql中可以执行,mybatis无法执行。
但,只要是mapper.xml对应的mapper路径正确,哪怕这个xml里面的sql不写也是会报相同的错误。
number使用long就可以了