怎么查eova源里的表?
希尔里斯 发布于39月前 10答/816阅

我的原始需求是:查eova_object表,根据name获取table_name.


实现过程中遇到的问题:

在控制器里直接写sql语句(传入的name是个String)

Record r = Db.findFirst("select table_name from eova_object where name=?;ds=eova", name);

配置里是两个数据源没有改过名:db.datasource = eova,main

运行时报错

com.jfinal.plugin.activerecord.ActiveRecordException:

 java.sql.SQLException: 

 sql injection violation, syntax error: 

 syntax error, error in :'me=?;ds=eova',expect IDENTIFIER, actual IDENTIFIER ds : 

   select table_name from eova_object where name=?;ds=eova

我不太懂expect IDENTIFIER具体是什么意思


我觉得这个问题的原因是:

默认配置数据源就有main和eova两个,eova源不能这么用??





[沙发] Jieven
@希尔里斯 Db.use(数据源-->默认是main).findFirst
写代码之前先学习一下基础框架文档,盲人摸象只会多走弯路!
最佳
[地板] 希尔里斯
@Jieven 严重感谢!待我完成人生首次跳槽再来给你赞助

----既然搜到了这个问题----

其实我有看过JFinal社区文档讲的Db+Record,但只举了非常简单的例子,然后刚刚翻它的javadoc里也提到了use但是该方法没有说明,所以有想法的话...还是值得从Db类出发看看源码

好吧其实com.eova.core.IndexController也能看到Db.use(...).findX(...)的用法...
[地毯] Jieven
@希尔里斯 为此我专门去看了JFinal最新的在线文档,准备搜到,贴你脸上,然后被你逃过一劫.
[4楼] Jieven
@希尔里斯 3.2的PDF文档里面是有的.
[5楼] Jieven
@希尔里斯 重新认真的看了一下是有的:http://www.jfinal.com/doc/5-14 最后面
[6楼] 希尔里斯
emmm...是我自己瞎...明明往下几节就有的...
[7楼] 希尔里斯
@Jieven 诶我今天还碰到个问题,就是关于xls导出的,用2016版wps表格做的模板,下载下来用Microsoft office excel 2013打不开,Excel程序会崩,但是用wps是可以正常打开的,不知道你有没有碰见过这样的事?

参照的是com.oss.test.XlsController里的方法:
* Excel模版导出-极简方案-导出Excel和写个JSP一样简单
* 缺点:Excel中不能有图等多媒体资源,一般也用不上,此方案能满足90%的常规需求,复杂的Excel还是使用POI
* 第一步:在WPS中编辑好Excel模版
* 第二步:将模版另存为test.html
* 第三部:读取test.html,给值,然后输出xls,浏览器弹下载!
[8楼] 希尔里斯
@Jieven 上一条请无视,应该是我自己ms office的原因,别人的电脑上可以的...
[9楼] Jieven
@希尔里斯 的确会存在兼容问题,如果需要完全兼容可自行用POI开发.
[10楼] 希尔里斯
@Jieven 不好意思,临到第二次准备跳槽的时候才想起这儿还欠话一句话,已充值 [抱拳]
提交评论
嘿,我来帮你!