mybatis查询mysql blob字段_mybatis+spring+mySql 处理Blob字段(报错:data too long for column 'descrip')...

mybatis查询mysql blob字段_mybatis+spring+mySql 处理Blob字段(报错:data too long for column 'descrip')...在 Spring Mybatis MySQL 环境下 尝试插入包含 BLOB 字段的记录时遇到 Datatoolongf descrip 错误

通过Spring+Mybatis+Mysql搭建了一个框架,在向MYSQl插入图片信息时,将其保存为BLOB类型到数据库。

前台JAVA代码如下:

@RequestMapping("/zdfz")

public ModelAndView zdfz(HttpServletRequest request,HttpServletResponse response){

ModelAndView mav = new ModelAndView("test");

//封装前台的字段到Map

HashMap map = new HashMap();

map.put("id", UUID.randomUUID().toString());

map.put("name", request.getParameter("name"));

map.put("age", request.getParameter("age"));

map.put("sex", request.getParameter("sex"));

//

MultipartHttpServletRequest msRequest = (MultipartHttpServletRequest) request;

MultipartFile mfile = msRequest.getFile("tp");

try {

//封装图片到Map

map.put("descrip",mfile.getBytes());

} catch (IOException e) {

e.printStackTrace();

}

int count = ts.insertFZ(map);

return null;

}

Mybatis的XML文件(descrip就是图片文件字段,数据类型为BLOB):

insert into user

(

id,name,age,

sex,descrip

)

value

(

#{id},#{name},#{age},

#{sex},#{descrip,jdbcType=BLOB}

)

报错如下:

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'descrip' at row 1

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3489)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)

at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)

at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:995)

at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)

at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)

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.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:45)

at $Proxy13.execute(Unknown Source)

at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:22)

at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:51)

at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:29)

at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:88)

at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:121)

at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:110)

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$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:338)

at $Proxy6.insert(Unknown Source)

at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:231)

at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:59)

at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:38)

at $Proxy7.insertFZ(Unknown Source)

at com.yk.test.service.impl.TestServiceImpl.insertFZ(TestServiceImpl.java:28)

at com.yk.test.controller.TestController.zdfz(TestController.java:73)

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.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)

at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)

at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)

at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

at java.lang.Thread.run(Thread.java:619)

说明:如果不添加这个BLOB字段,就可以正常的插入。

插入的时候并没有将相关的字段封装成一个JavaBean,而是封装成一个Map插入的。

经过在网上搜索相关的资料,也没有解决,希望各位帮忙。

今天的文章 mybatis查询mysql blob字段_mybatis+spring+mySql 处理Blob字段(报错:data too long for column 'descrip')...分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-30 13:17
下一篇 2024-12-30 13:11

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/92184.html