版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/BinCain1993/article/details/80063911
SpringMVC+Mybatis环境 和 Struts + Hibernate环境 操作mysql存取BLOB数据
请求流程中的报文需要存储备用,但有的报文过长,在存MySQL时选择用BLOB类型 1. 在SpringMVC+Mybatis环境下,直接设置对应的Entity中对应的字段为byte[]类型,存值时,直接将对应的String报文 getByte, 再存值即可取值时,直接查MySQL 的Blob类型数据到entity的byte[], 再new String输出即可,如下代码 byte[] appToRouteData = dataEntity.getAppToRouteData(); byte[] appFromRouteData = dataEntity.getAppFromRouteData(); System.out.println(" appToRouteData :" + new String(appToRouteData)); System.out.println(" appFromRouteData :" + new String(appFromRouteData)); 2.但是在Struts + Hibernate环境下操作时,则发现转换出错,不能设置表对应的entity的字段为byte[]类型须设置成BLOB类型, 然后再将BLOB类型的数据转换成String类型输出,具体解决代码如下 BLOB blobData = dataEntity.getAppToRouteData(); ByteArrayInputStream blobDataStream=(ByteArrayInputStream) blobData.getBinaryStream(); byte[] byteData = new byte[blobDataStream.available()]; blobDataStream.read(byteData, 0,byteData.length); String result = new String(byteData); 开发过程中遇到的问题记录,具体是因为Struts 、SpringMvc OR Mybatis的原因,待测试。