郁闷了好久,在刚开始使用mybatis的时候,插入语句没有问题,但是有一个查询语句有问题,死活找不到原因,并且报以下错误,折腾了好几个小时,最终得知需要把Oracle数据库中的Long型的字段修改为Number,这样才可以正确的执行,汗!!!!

归结到底还是对Oracle数字段类型没有进入深入了解,以为Oracle中的long就是Java中的long,实际上如果是数字类型,最好 设置为number类型,Oracle中的long类型不要使用

long:可变字符序列,最大长度为2GB,用于不需要作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型。long是一种比较老的数据类型,将来会主键被BLOB,CLOB,NCLOB等大的数据对象所取代

org.springframework.jdbc.UncategorizedSQLException: SqlSession operation; uncategorized SQLException for SQL []; SQL state [null]; error code [17027]; 流已被关闭; nested exception is java.sql.SQLException: 流已被关闭
    at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:121)
    at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:322)
    at org.mybatis.spring.SqlSessionTemplate.wrapException(SqlSessionTemplate.java:364)
    at org.mybatis.spring.SqlSessionTemplate$7$1.doInSqlSession(SqlSessionTemplate.java:344)
    at org.mybatis.spring.SqlSessionTemplate.execute(SqlSessionTemplate.java:173)
    at org.mybatis.spring.SqlSessionTemplate.execute(SqlSessionTemplate.java:155)
    at org.mybatis.spring.SqlSessionTemplate$7.invoke(SqlSessionTemplate.java:339)
    at $Proxy9.queryById(Unknown Source)
    at com.sinosig.insurance.service.impl.DayAwardInfoServiceImp.queryById(DayAwardInfoServiceImp.java:18)
    at com.sinosig.insurance.test.TestMyBatis.Test(TestMyBatis.java:40)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.test.context.junit4.SpringTestMethod.invoke(SpringTestMethod.java:198)
    at org.springframework.test.context.junit4.SpringMethodRoadie.runTestMethod(SpringMethodRoadie.java:274)
    at org.springframework.test.context.junit4.SpringMethodRoadie$2.run(SpringMethodRoadie.java:207)
    at org.springframework.test.context.junit4.SpringMethodRoadie.runBeforesThenTestThenAfters(SpringMethodRoadie.java:254)
    at org.springframework.test.context.junit4.SpringMethodRoadie.runWithRepetitions(SpringMethodRoadie.java:234)
    at org.springframework.test.context.junit4.SpringMethodRoadie.runTest(SpringMethodRoadie.java:204)
    at org.springframework.test.context.junit4.SpringMethodRoadie.run(SpringMethodRoadie.java:146)
    at org.springframework.test.context.junit4.SpringJUnit4Cla***unner.invokeTestMethod(SpringJUnit4Cla***unner.java:151)
    at org.junit.internal.runners.JUnit4Cla***unner.runMethods(JUnit4Cla***unner.java:51)
    at org.junit.internal.runners.JUnit4Cla***unner$1.run(JUnit4Cla***unner.java:44)
    at org.junit.internal.runners.Cla***oadie.runUnprotected(Cla***oadie.java:27)
    at org.junit.internal.runners.Cla***oadie.runProtected(Cla***oadie.java:37)
    at org.junit.internal.runners.JUnit4Cla***unner.run(JUnit4Cla***unner.java:42)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.sql.SQLException: 流已被关闭
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:207)
    at oracle.jdbc.driver.LongAccessor.getBytes(LongAccessor.java:150)
    at oracle.jdbc.driver.LongAccessor.getString(LongAccessor.java:192)
    at oracle.jdbc.driver.T4CLongAccessor.getString(T4CLongAccessor.java:421)
    at oracle.jdbc.driver.CharCommonAccessor.getLong(CharCommonAccessor.java:234)
    at oracle.jdbc.driver.OracleResultSetImpl.getLong(OracleResultSetImpl.java:551)
    at oracle.jdbc.driver.OracleResultSet.getLong(OracleResultSet.java:1574)
    at org.apache.commons.dbcp.DelegatingResultSet.getLong(DelegatingResultSet.java:240)
    at org.apache.ibatis.type.LongTypeHandler.getNullableResult(LongTypeHandler.java:17)
    at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:29)
    at org.apache.ibatis.executor.resultset.FastResultSetHandler.applyAutomaticMappings(FastResultSetHandler.java:280)
    at org.apache.ibatis.executor.resultset.FastResultSetHandler.getRowValue(FastResultSetHandler.java:222)
    at org.apache.ibatis.executor.resultset.FastResultSetHandler.handleRowValues(FastResultSetHandler.java:173)
    at org.apache.ibatis.executor.resultset.FastResultSetHandler.handleResultSet(FastResultSetHandler.java:146)
    at org.apache.ibatis.executor.resultset.FastResultSetHandler.handleResultSets(FastResultSetHandler.java:112)
    at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:40)
    at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:55)
    at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:41)
    at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:238)
    at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:112)
    at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:72)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:78)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:72)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:38)
    at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:75)
    at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:38)
    at $Proxy9.queryById(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.mybatis.spring.SqlSessionTemplate$7$1.doInSqlSession(SqlSessionTemplate.java:342)
    ... 29 more

转载于:https://blog.51cto.com/wtf0313/1186625

error code [17027]; 流已被关闭;相关推荐

  1. java 流已被关闭_mybatis oracle java.sql.SQLException: 流已被关闭问题

    /** * 按照页码取值(从current_page页开始,每页page_size条) * @param key * @param params * @param current_page * @pa ...

  2. 《工具箱-服务器相关》Moba连接FTP服务器,EElFTPSUnacceptedReplyError(error code is 550)已解决

    Moba连接FTP服务器,EElFTPSUnacceptedReplyError(error code is 550)已解决 使用FTP服务器连接FTP服务器,在使用过程中发现创建文件和上传文件时会报 ...

  3. 【错误归纳】E: Sub-process /usr/bin/dpkg returned an error code (1)子进程 已安装 post-installation 脚本 返回了错误号 1

    问题描述 我在使用apt-get install 安装某个程序的时候出现了下面的错误提示: 正在设置 anydesk (5.1.1) ...System start/stop links for /e ...

  4. (已解决)oracle 查询数据一直提示:“error code [17004]; 无效的列类型”

    解决方法:传入的键值对,要对应数据库的字段类型. 比如oracle的varchar,varchar2要对应 java 的string , number要对应java的long. 今天在上班启动系统的时 ...

  5. MYSQL ERROR CODE 错误编号的意义

    mysql error code(备忘) 转1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件 ...

  6. ios计算机错误,解决都叫兽™iOS密码重置与USB连接相关的错误(iOS,Error Code 13)...

    吴川 华南区技术负责人 概要 都叫兽™iOS密码重置可有效帮助您解决忘记密码.设备启动崩溃等问题.本文将针对在Windows系统下使用该软件遇到的"Unstable USB connecti ...

  7. 关于Job for network.service failed because the control process exited with error code.

    重启网络出现报错 Job for network.service failed because the control process exited with error code. See &quo ...

  8. Error Code: 1175. You are using safe update mode and you tried to ......

    MySQL提示的错误信息: Error Code: 1175. You are using safe update mode and you tried to update a table witho ...

  9. mysql常见问题处理-插入数据error code:1206

    mysql常见问题处理-插入数据error code:1206 mysql  error code:1206 the total number of locks exceeds the lock ta ...

最新文章

  1. GPU的发展历程、未来趋势及研制实践
  2. ASP.NET MVC3 Razor视图引擎-基础语法
  3. 数据库3(DBUtils)
  4. C语言高级编程:二维数组、指针的指针、数组指针、指针数组
  5. 保存网络文章以供以后使用Instapaper阅读
  6. JSONP跨域原理和jQuery.getJSON用法
  7. Window中的Docker 拉取Mysql镜像 并在本地Navicate链接
  8. 数据过多,程序运行失败
  9. 微软切断XP供应 Vista成制造商惟一选择
  10. 免费计算机网络同传系统,使用网络同传功能批量完成系统安装
  11. 2022年华为笔试面试机考真题100道(C/C++语言)
  12. 单片机晶振电路的设计与计算
  13. matlab 用循环求和,matlab求和不用循环
  14. 常见的保险产品类别-年金保险、意外险
  15. 传奇关于首饰盒装备系统“十二生肖”“五行八卦”等脚本实例
  16. 假如给我三天光明阅读心得收获
  17. The connection to adb is down, and a severe error has occured.
  18. thinkphp6学习教程与源码 tp6开源CMS系统源码研究
  19. 基于TCP协议的游戏代理接口测试工具<一>:设计初衷与工具构想
  20. win11无法安装msi程序的解决方法

热门文章

  1. 我们梳理了一下VR教育,感觉它将会是下一个蓝海
  2. Linux下备份系统
  3. 在.net中使用强类型来读取配置信息
  4. SFB 项目经验-12-为某上市企业的Skype for Business购买Godday证书
  5. Android基础之应用程序组件
  6. 更改Windows Server Core 2008计算机名字和配置网络连接
  7. Linux解压WINRAR文件
  8. tidb 架构 ~Tidb学习系列(4)
  9. 关于Unity3D中鼠标移动指定物体的解决方案
  10. 浅谈RxJava与2.0的新特性