mybatis执行insert方法向数据库插入数据时,报空指针求

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis执行insert方法向数据库插入数据时,报空指针求相关的知识,希望对你有一定的参考价值。

mybatis执行insert方法向数据库插入数据时,对象元素全部set成功,就在最后insert时报错了,空指针异常,数据没有存进去。。。 在最后一步插入数据时报错。。

weChatUser.setWecharNumber("");
weChatUser.setUnionId("");

System.out.println(weChatUser);
wechatUserService.insert(weChatUser);

insert之前的system还能执行打印出语句, 执行后后台打印的是:
WechatUser [id=240284602007554,wecharNumber=,openid=oyvFKs-I-L69DrwJrd43elPN0BgE,unionId=,nickname=刘向,sex=1,city=昌平,province=北京,country=中国,language=zh_CN,headimgurl=http://wx.qlogo.cn/mmopen/PiajxSqBRaEJJY2wIhiavOcAkEqtViawicFa1odHS27A9uSOZKGzGxYsibpnIfKjjR8MiaSz3hyiaabol945G6VuicFTtQ/0,subscribeTime=Wed Dec 31 12:06:47 CST 2014,cdlId=0,luckyNumber=0,groupId=0,]

Exception in thread "main" java.lang.NullPointerException
at com.kingkaysoft.cdl.test.YXFTest.insertInfo(YXFTest.java:93)
at com.kingkaysoft.cdl.test.YXFTest.main(YXFTest.java:47)

参考技术A 在你main方法的47行有空指针错误,看看是不是参数对象没有进行初始化 参考技术B getSqlMapClientTemplate().insert("Users.addUser",user);增加操作都没有~追问

wechatUserService.insert(weChatUser); 这不是吗?

为啥用mybatis不能向数据库里面插入数据?

mybatis不能向数据库里面插入数据原因可能是执行了插入动作,但是没有最终commit到数据库服务器导致。

mybatis插入数据的例子如下:
package com.mybatis.demo;
import java.io.Reader;
public class Test
private static SqlSessionFactory sqlSessionFactory;
private static Reader reader;
static
try
reader = Resources.getResourceAsReader("Configuration.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
catch(Exception e)
e.printStackTrace();


public static SqlSessionFactory getSession()
return sqlSessionFactory;

//添加用户
public void addUser()
User user = new User();
user.setId(4);
user.setUserAddress("人民广场");
user.setUserName("Birds");
user.setUserAge("102");
SqlSession session = sqlSessionFactory.openSession();
try
IUserOperation userOperation = session.getMapper(IUserOperation.class);
session.commit();
System.out.println("当前增加的用户id为:"+user.getId());

finally
session.close();


public static void main(String[] args)
Test testUser = new Test();
testUser.addUser();


当执行到 testUser.addUser();后执行到session.commit();数据就会插入表。
参考技术A DB2出现22001说明字段长度比插入的内容短致使。解决方案:修改表结构,或验证限制输入长度 参考技术B 没有这说法,<insert>标签难道不是插入数据用的...本回答被提问者和网友采纳

以上是关于mybatis执行insert方法向数据库插入数据时,报空指针求的主要内容,如果未能解决你的问题,请参考以下文章

调用mybatis的insert方法阻塞问题

MyBatis中的循环插入insert foreach

MyBatis 返回insert操作主键

MyBatis如何执行批量插入数据?

MyBatis在insert插入操作时返回主键ID的配置

基于mybatis向oracle中插入数据的性能对比