Mybatis中的java.io.NotSerializableException
在学习Mybatis中,用JUnit运行了一个测试方法,出现了如下错误:
org.apache.ibatis.cache.CacheException: Error serializing object. Cause: java.io.NotSerializableException: com.lilu.mybatis.po.User
运行的测试方法如下:
@Testpublic void testFindUserByHashmap() {//获取sessionSqlSession session = sqlSessionFactory.openSession();//获限mapper接口实例UserMapper userMapper = session.getMapper(UserMapper.class);//构造查询条件Hashmap对象HashMap<String, Object> map = new HashMap<String, Object>();map.put("id", 4);map.put("username", "xiao");//传递Hashmap对象查询用户列表List<User> list;try {list = userMapper.findUserByHashmap(map);for (User user : list) {System.out.println(user);}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{//关闭sessionsession.close();}}
usermapper.xml中的sql语句:
<select id="findUserByHashmap" parameterType="Hashmap" resultType="com.lilu.mybatis.po.User">select * from user where id=#{id} and username like '%${username}%'</select>
看异常发现说com.lilu.mybatis.po.User这个实体类没有序列化,然后我在User类中加上implements Serializable再运行一次就不报错了。
public class User implements Serializable{public User() {// TODO Auto-generated constructor stub}....}
14:47:33,232 DEBUG org.apache.ibatis.logging.LogFactory:135 - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.
14:47:33,385 DEBUG org.apache.ibatis.datasource.pooled.PooledDataSource:316 - PooledDataSource forcefully closed/removed all connections.
14:47:33,385 DEBUG org.apache.ibatis.datasource.pooled.PooledDataSource:316 - PooledDataSource forcefully closed/removed all connections.
14:47:33,386 DEBUG org.apache.ibatis.datasource.pooled.PooledDataSource:316 - PooledDataSource forcefully closed/removed all connections.
14:47:33,386 DEBUG org.apache.ibatis.datasource.pooled.PooledDataSource:316 - PooledDataSource forcefully closed/removed all connections.
14:47:33,577 DEBUG com.lilu.mybatis.mapper.UserMapper:62 - Cache Hit Ratio [com.lilu.mybatis.mapper.UserMapper]: 0.0
14:47:33,586 DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction:136 - Opening JDBC Connection
14:47:33,938 DEBUG org.apache.ibatis.datasource.pooled.PooledDataSource:387 - Created connection 22756955.
14:47:33,939 DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction:100 - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@15b3e5b]
14:47:33,942 DEBUG com.lilu.mybatis.mapper.UserMapper.findUserByHashmap:159 - ==> Preparing: select * from user where id=? and username like '%xiao%'
14:47:33,992 DEBUG com.lilu.mybatis.mapper.UserMapper.findUserByHashmap:159 - ==> Parameters: 4(Integer)
14:47:34,024 DEBUG com.lilu.mybatis.mapper.UserMapper.findUserByHashmap:159 - <== Total: 1
User [id=4,username=xiaojun,sex=1,birthday=Tue Sep 26 00:00:00 CST 2017,address=天津市,toString=com.lilu.mybatis.po.User@dbd940d]
14:47:34,059 DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction:122 - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@15b3e5b]
14:47:34,060 DEBUG org.apache.ibatis.transaction.jdbc.JdbcTransaction:90 - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@15b3e5b]
14:47:34,061 DEBUG org.apache.ibatis.datasource.pooled.PooledDataSource:344 - Returned connection 22756955 to pool.
上面是正常运行的结果,运行后还有数据库连接的释放资源,运行其他测试方法的时候都没有。
如果报序列化的错误就去找报错的类是否序列化,这个类引用的类是否序列化,如果一个父类序列化了,那么它的子类不需要implements Serializable也序列化了。
然后什么是序列化,为什么要序列化呢?
这个大大写的很详细:点击打开链接
Mybatis中的java.io.NotSerializableException相关推荐
- 异常java.io.NotSerializableException
这是spark保护函数的异常:传递局部可序列化变量或者顶级对象中的函数始终是安全的. 例如 val fun = new searchFun // println(fun.isMath("ru ...
- Spark连接redis问题 Caused by: java.io.NotSerializableException
**spark连接Redis的时候报错: ** Caused by: java.io.NotSerializableException: io.jimdb.JimdbNewCluster$$Enhan ...
- Caused by: java.io.NotSerializableException:cn.bloghut.pojo.User
错误产生环境 mybatis 项目开启二级缓存时产生 错误描述 Caused by: java.io.NotSerializableException: cn.bloghut.pojo.Userat ...
- java.io.NotSerializableException:异常
java.io.NotSerializableException:异常 参考文章: (1)java.io.NotSerializableException:异常 (2)https://www.cnbl ...
- 没有系列化导致错误:java.io.NotSerializableException: com.bjpowernode.bean.Team
java.io.NotSerializableException: com.bjpowernode.bean.Team Cause: java.io.NotSerializableException: ...
- java序列化错在哪里_Spark序列化错误:java.io.NotSerializableException
由于spark算子用到的class没有实现序列化,报错如下所示 15/11/23 14:43:47 ERROR Executor: Exception in task 0.0 in stage 4.0 ...
- java.io.NotSerializableException: org.apache.kafka.clients.consumer.ConsumerRecord
java消费kafka数据时报错 ERROR [Executor task launch worker for task 90] - Exception in task 0.0 in stage 54 ...
- 使用MyBatis时出现java.io.IOException: Could not find resource com/ee/mybatis/mapper/Usermapper.xml 类似的错误
使用MyBatis时出现java.io.IOException: Could not find resource com/ee/mybatis/mapper/Usermapper.xml 类似的错误的 ...
- 报错异常:java.io.NotSerializableException: daqi.base_io.Student
异常发生: 在通过使用ObjectOutputStream和ObjectInputStream测试对象的序列化时出现一个小异常,异常片段如下: java.io.NotSerializableExcep ...
最新文章
- 测开之路十五:构造函数、析构函数
- echarts 有引导线和内部文字_点、线、面构图的异同以及相互转化
- C语言解析Ini格式文件
- AndroidStudio各个版本下载
- 使用idea导入远程git版本库项目
- 2019腾讯广告算法大赛之清洗广告数据集和用户数据集
- 计算机表格斜杠怎么打,excel斜杠_excel表格打斜杠的方法步骤详解
- java囧囧西游之大闹天宫下载_最新囧囧西游之大闹天宫榜单下载_九游
- 苹果系统和安卓系统的区别_又一款影视APP,这次支持苹果安卓双系统!
- Mac自带apache2搭建服务请求localhost报 403 Forbidden
- php 联合查询,多表联合查询
- 我的MSN机器人终于有了自己的头像
- 女生选择了计算机专业能做什么工作?其实有这 5 种,前景很好
- 以太网已连接却无法联网的解决记录
- 失业参加聚会_谁被邀请参加聚会?
- tlc5620输出三角波流程图_单片机实践A/D和D/A转换的程序
- Shelve Silently 静默搁置 Android Studio Git 功能
- 搭建个人博客工具推荐
- 分布式tensorflow介绍1:实现最简单的ps-work工作模式
- Mongodb 全文搜索