彭老师:您好!关于JF中数据查询更新问题/分页问题,麻烦您在百忙中指点迷津。多谢!

06-04-21 javatim
彭老师:

您好!

我在学习使用JF中(jboss)有如下几个问题,特此向您请教一下:

一、关于JF中数据查询更新问题:

1、同一应用中,在页面对一个表成功增加一条记录后(后台数据库也看到了),在另一处关联查询中,没有该记录?

2、同一应用中,在后台数据库直接或者通过JDBC在页面对一个表成功增加一条记录后(后台数据库也看到了),在另一处关联查询中,没有该记录?

上述两种情况下,重启JBOSS后,一切正常,该是CACHE相关问题,请教(对JF和JBOSS)该如何调整?

二、关于JF中分页问题:

1、条件固定时:(如下一切正常)

MultiPages:pager actionFormName="orderListForm" page="/orderListAction2.do?where=(order_is_valid='0')&order=(order_datetime,order_id)"> <MultiPages:prev name="[上页 ]" /> MultiPages:index /> <MultiPages:next name="[下页 ]" /> /MultiPages:pager>

2、条件不固定变化时:该如何处理?而且同在一页面中,入口有默认的固定条件,之后条件总在变化(多条件查询页面)。

选择多条件之后点击查询后,首页符和条件,来回翻页就不是条件结果了,就是MultiPages中写的条件了,如何把动态条件和MultiPages结合起来,最好不用GET方式,用POST方式。

麻烦彭老师在百忙中指点迷津,初学敬请详细些。

多谢!

    

banq
2006-04-21 14:48
>1、同一应用中,在页面对一个表成功增加一条记录后(后台数据库也看到了),在另一处关联查询中,没有该记录?

可能会,在增加记录的语句后面,调用"关联查询"中的pageIterator的clear方法。

>2、同一应用中,在后台数据库直接或者通过JDBC在页面对一个表成功增加一条记录后(后台数据库也看到了),在另一处关联查询中,没有该记录?

道理同上,需要清除缓存,或者直接调用CacheManager的clear清除。

>如何把动态条件和MultiPages结合起来,最好不用GET方式,用POST方式。

MultiPages语句中可加入动态变量,通过

page='/orderListAction2.do<%=""+i+""%>'
<p>

等实现。

如果要使用post方式,可先提交给一个action,然在struts-config.xml的action项目的forward中直接转向到批量显示/orderListAction2.do。

实际是多个action串在一个请求中。

还可以通过继承JF的MultiPages,加入自己的定义,扩展该标签库。

等等,以上手段基本可应付大多数需求,有问题请再提出。

javatim
2006-04-26 11:54
彭老师:

您好!

谢谢百忙中的解惑!

我在学习使用JF中(jboss)又遇到一个问题,就是关于JF中批量删除问题,特此再向您请教一下:

问题概述:

单个删除是没有任何问题的,log显示如下:

2006-04-26 11:16:14,124 DEBUG [com.jdon.aop.reflection.ProxyMethodInvocation] target:com.jdon.dataadmin.service.TestServicePOJOImp service's method:deleteOrder running..

2006-04-26 11:16:14,124 DEBUG [com.jdon.aop.reflection.ProxyMethodInvocation] it is pojo target service

2006-04-26 11:16:14,124 DEBUG [com.jdon.model.query.JdbcTemp] --> enter getSingleObject

2006-04-26 11:16:14,124 DEBUG [com.jdon.model.query.JdbcTemp] delete from order where id in (?)

2006-04-26 11:16:14,124 DEBUG [com.jdon.model.query.JdbcUtil] parameter 1 is 3

2006-04-26 11:16:14,124 DEBUG [com.jdon.controller.cache.CacheManager] <-cache->remove the object of PageIteratorPageIteratorSolverKEYSCOUNTselect count(1) from order from cache

2006-04-26 11:16:14,124 DEBUG [com.jdon.controller.cache.CacheManager] <-cache->remove the object of PageIteratorPageIteratorSolverKEYSselect id from order from cache

2006-04-26 11:16:14,124 DEBUG [com.jdon.dataadmin.service.TestServicePOJOImp] delete ok!

2006-04-26 11:16:14,124 DEBUG [com.jdon.aop.reflection.MethodInvokerUtil] method invoke successfully

2006-04-26 11:16:14,124 DEBUG [com.jdon.aop.interceptor.PoolInterceptor] realease a object:com.jdon.dataadmin.service.TestServicePOJOImp to pool

2006-04-26 11:16:14,140 DEBUG [com.jdon.model.handler.HandlerObjectFactory] --> return Modelhandler instance successfullycom.jdon.model.handler.XmlModelHandler10

2006-04-26 11:16:14,140 DEBUG [com.jdon.strutsutil.ModelSaveAction] save successfully ...

批量(如一个以上)删除功能显示成功,但是数据库中,并没有真正删除,查询log显示如下(也和单个删除日志一样正常,把日志中的sql语句单独在数据库工具中执行也是正常能成功删除其数据的):

2006-04-26 11:12:36,312 DEBUG [com.jdon.aop.reflection.ProxyMethodInvocation] target:com.jdon.dataadmin.service.TestServicePOJOImp service's method:deleteOrder running..

2006-04-26 11:12:36,312 DEBUG [com.jdon.aop.reflection.ProxyMethodInvocation] it is pojo target service

2006-04-26 11:12:36,312 DEBUG [com.jdon.model.query.JdbcTemp] --> enter getSingleObject

2006-04-26 11:12:36,312 DEBUG [com.jdon.model.query.JdbcTemp] delete from order where id in (?)

2006-04-26 11:12:36,312 DEBUG [com.jdon.model.query.JdbcUtil] parameter 1 is 3,2

2006-04-26 11:12:36,312 DEBUG [com.jdon.controller.cache.CacheManager] <-cache->remove the object of PageIteratorPageIteratorSolverKEYSCOUNTselect count(1) from order from cache

2006-04-26 11:12:36,328 DEBUG [com.jdon.controller.cache.CacheManager] <-cache->remove the object of PageIteratorPageIteratorSolverKEYSselect id from order from cache

2006-04-26 11:12:36,328 DEBUG [com.jdon.dataadmin.service.TestServicePOJOImp] delete ok!

2006-04-26 11:12:36,328 DEBUG [com.jdon.aop.reflection.MethodInvokerUtil] method invoke successfully

2006-04-26 11:12:36,328 DEBUG [com.jdon.aop.interceptor.PoolInterceptor] realease a object:com.jdon.dataadmin.service.TestServicePOJOImp to pool

2006-04-26 11:12:36,328 DEBUG [com.jdon.model.handler.HandlerObjectFactory] --> return Modelhandler instance successfullycom.jdon.model.handler.XmlModelHandler10

2006-04-26 11:12:36,328 DEBUG [com.jdon.strutsutil.ModelSaveAction] save successfully ...

麻烦彭老师百忙中多多指教!

多谢!

banq
2006-04-27 17:39
>批量(如一个以上)删除功能显示成功,但是数据库中,并没有真正删除

这个问题我碰到过,主要是你数据类型不匹配导致:输入JdbcTemp的问号中的数据类型和你数据表这个字段的类型不一致,如输入是字符串,字段类型其实整数型。

猜你喜欢