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的原因,待测试。