MyBatis插入并且没有返回键:获取生成密钥或将结果设置为参数对象时出错

时间:2017-06-08 21:56:02

标签: mybatis ibatis spring-mybatis

使用通过注释配置的MyBatis(MyBatis-3.1.1jar)将记录插入到表中时出现异常。

那么这个表只有两列。

Table EMLSIGNUP(
employeeName varchar(25)
country varchar(25)
)

我正在使用POJO类来插入记录。

public class EmailBean{
private String employeeName;
private String country;
…getters and setters..
}

在映射器中,我这样插入。

@Insert("INSERT INTO EMLSIGNUP(employeeName,COUNTRY, ) " +
        "VALUES (#{employeeName  ,jdbcType=VARCHAR},  #{country ,jdbcType=VARCHAR})")
public void insertEmail(EmailBean emailBean);

例外是

caused by: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: Error getting generated key or setting result to parameter object. Cause: java.lang.NullPointerException

似乎它正在寻找一些主键,我没有在数据库中以及在POJO类中定义和

由于其审核表格中我们不想在用户登录我们的应用程序时在表格中存在任何主键,因此我们会存储他的姓名和所访问的国家/地区。

2 个答案:

答案 0 :(得分:0)

请删除额外的逗号:

@Insert("INSERT INTO EMLSIGNUP(employeeName,COUNTRY ) " +
        "VALUES (#{employeeName  ,jdbcType=VARCHAR},  #{country ,jdbcType=VARCHAR})")
public void insertEmail(EmailBean emailBean);

答案 1 :(得分:0)

我有同样的问题,因为我们使用的是错误版本的jdbc驱动程序。

就我而言,它是Oracle,我们使用ojdbc进行12c,而数据库版本仍为11g。

因此使用正确版本的ojdbc解决了这个问题。

希望它有所帮助。