2017-03-24 10:52

@要输就输给追求 嗯,也对,其实我只是不想启动tomcat,就用偶尔jdbc一下,更项目导写客户基础数据。

2017-03-24 10:46

@qiushui90 貌似多个sheet不行。以下是源码中一段
private void printSheets() {
ensureOut();
Sheet sheet = wb.getSheetAt(0);
printSheet(sheet);
}

2016-08-23 16:27

@JFinal String select = "SELECT " +
" sm.messageId, " +
" sm.messageTitle, " +
" sm.messageText, " +
" isShowRedDot(?,sm.messageId) as isShowRedDot, " +
" sm.mtime ";

String sqlExceptSelect = "FROM " +
" system_message AS sm " +
"WHERE " +
" sm.messageStatus = 1";
return SystemMessage.dao.paginate(pageNumber, 10, select, sqlExceptSelect, memberId);

Jfinal的分页,貌似where前面的SQL 不支持 占位符,我写了个函数isShowRedDot需要传memberId,但是,在DbPro.java的72行,也就是,执行 select count(*)算中记录数的时候
PreparedStatement pst = conn.prepareStatement(sql);
config.dialect.fillStatement(pst, paras);
报参数数组越界,因为在占位符,没有写在 where语句后面,而是where语句前面。
所以我在上面两行代码里追加了一行代码:
if(sql.indexOf("?") == -1) {paras = new Object[0];}
意思是,如果这条SQL没有占位符,我就把数组变成空数组;
代码就能执行成功了。我不清楚这是不是bug,还是,我的也写法有问题。我这么一改,我在调用分页功能的时候,可以在where语句前面,写占位符?传参了。

2016-08-17 10:46

@JFinal 嗯对,我试了一下,看了一下排序,确定不支持,我错了,看来只能手打了。因为有个需求是,根据价格,时间,销量上下排序,本打算用order by ? desc/asc。哎......3Q,成长了。Jfinal很犀利的框架,我喜欢。

2016-08-17 10:37

@JFinal 我发现的一个线索是,我的分页代码是常规的select * from goods,他的分页代码是JSON.toJSONString(Goods.dao.paginate(1, 10,"select * ","from goods"));我把这行代码,随便放在login的controller里,然后调试,并且,我在Goods.java,也就是他的model类里,写了另外一个函数,public List getXXxGoodsList(){}方法里面也就写了个select 返回list的代码,我测试发现,只要是方法以get开头,fastJson,就是自动循环调用,Goods.java里的这个getXXxGoodsList函数,里面的SQL代码。我不解的是,我明明让执行的是select * from goods,为啥,跑到goods.java里面执行和它无关的getXXxGoodsList()函数。我在Goods.java里,不出现以get开头的函数,就不会出现死循环。应该是第1个原因,我的goods.java里,有getter函数,里面查询了数据,而且也是返回List,应该是递归了。3Q。看来开发还是,不用fastJson

2016-08-16 19:39

错了,是改成这个if(sql.indexOf("?") == -1) {paras = new Object[0];}