使用jfinal在百度云数据库保存blob时报错

傲娇字符 发布于 2014/07/01 09:45
阅读 547
收藏 0

今天将本地基于JFinal开发的web应用发布到服务器的时候,遇到如下问题:

业务要求:百度duapp空间不支持创建文件,所以只能将文件保存到其提供的mysql数据表中。在本地连接保存都是正常,但是一旦发布到duapp空间,保存操作就报错,看日志好像是jfinal保存的时候出现什么问题。不知道有没有人遇到过这个问题,谢谢指导,代码如下:



Map<String,Object> values = new HashMap<String, Object>();
values.put("log_time", new Timestamp(System.currentTimeMillis()));
values.put("fileName", logFileName);
values.put("fileTrueName", fileName);
values.put("user_id", login.getUser_id());
values.put("usable", 0);
values.put("file_type", 1);//保存为文件
values.put("file_body", item.getInputStream());
values.put("dr", 0);
values.put("ts", new Timestamp(System.currentTimeMillis()));
FileUploadLogModel fileLog = new FileUploadLogModel();
boolean bool = fileLog.setAttrs(values).save();



错误日志:

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?9???|????????!-?<?O??1h]Bz?e????u?qW?{???:2???,[??w??|i?1???u??\'???' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4096)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2490)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2651)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2683)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2144)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2444)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2362)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2347)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105)
at com.jfinal.plugin.activerecord.Model.save(Model.java:299)

加载中
0
JFinal
JFinal
duapp 对很多 api 有使用限制,所以会出些问题。参考一下@孤独的3 的项目,他是部署在 duapp 上的: http://www.oschina.net/p/dreamlu
傲娇字符
傲娇字符
谢谢,我先研究下
0
金贞花
金贞花
好nb的PM
傲娇字符
傲娇字符
额?
0
duty
duty
可能不同数据库版本之间的语法不兼容或者语句错误(乱码?)
傲娇字符
傲娇字符
这个表里的字段,除了有一个blob字段,其他都没有中文,乱码问题应该不存在,但是数据库版本确实有可能,还在找duapp的数据库是什么版本,或者是就想JFInal老大说的,会不会是有什么api有限制
0
如梦技术
如梦技术
上传文件一般是调用它的api,传到相应的云文件系统里面!存数据库确实没尝试过!
返回顶部
顶部