??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
用JDBC?PreparedStatement׃用到set()Ҏ,但setq去的则是java.sql.Datecd,而不是java.util.Datecd,问题出来了,比如当你setq去一个时?假设旉2006-12-18 15:43:23),如下:
java.sql.Date today = new java.sql.Date(); |
我要查在q个旉以前的数?可结果却q回?font color="#ff0000">17号以前的l果,
在数据库里查也是没有问题?但问题出在什么地方呢?后来扑ֈ的答案就?通过q种方式java.sql.Date会省略小??U?转成的SQL会默认ؓ2006-12-18 00:00:00,认ؓ是查2006-12-18 00:00:00之前的结?ph造成了这ơ头痛的事g,而这一代码q不是本人所?看别人的代码真是?
Here's my little exploration to Spring's AOP framework - a little interceptor which just logs which class is called and which method is called, plus logging the method invocation time; however I hope this can help others to understand Spring's AOP and help them to write interceptors of their own.
-cptechno
An interceptor used in Spring need to implement the
org.aopalliance.intercept.MethodInterceptor
interface, which requires implementing this method:
|
And next, comes that little interceptor...
|
You can do anything as you like; but pay attention to these two lines:
|
The execution sequence is as follows:
Object retVal = methodInvocation.proceed();
Object retVal = methodInvocation.proceed();
, which gives control to the next interceptor in the interceptor stack, or the underlying method.
return retVal;
return retVal;
, which returns control to the interceptor above it, or exit the whole interceptor stack.
Next, to use the interceptor we wrote, we need to turn our business object as an AOP target, like this:
|
As shown, we just need to change the bean's id.
Next we need to hang the interceptor on to Spring's ApplicationContext.
|
And the last step, we declare our business object actually in the ApplicationContext, via its interface we defined, via Spring's ProxyFactoryBean.
|
On the application code that will access the business object, no changes are necessary.
Then at your logging target (console, file, etc...) you can see the following output similar to this (time and level info trimmed here):
|
·pȝL枉用SUN J2EE框架Q用JAVA/XML技术和lg技术, ZApplication server开发?
·目中的E序必须严格按J2EE1.3规范来编码,EJB采用2.0规范~码Q尽可能多用EJB 模式设计Q参考技术文档如下:
j2ee-1_3-doc-tutorial-draft5.pdf
2.《JBoss 3.0Quick Start Guide?/a>
·试用Application server采用JASQJAS 配置于Linux OS下,IP地址Q?92.168.0.6。登录用户名QJ2EEOAQ密码:J2EEOA。登录ftp工具使用SSH Secure Shell或LeapFTPQftp地址?92.168.0.6:22?
·目开发源码目录ؓ/home/local/jboss/applications/J2EEOA/srcQ项目开发文档目录ؓ/home/product/J2EEOA/?
· 数据库服务器IP?92.168.0.222Q数据库采用MysqlQ管理工具ؓphpadminQ登录数据库的用户名为testQ密码ؓtest?
每位开发小l成员一定要l对遵守以下创徏源代码目录的规范?
目开发目录结构简图:
目开发目录结构说明:
模块、组件开发目录结构简图:
说明Qsrc、etc目录和build.bat、build.sh、build.xml为开发h员徏立的目录Qbuild和lib目录为由ant工具生成的目录?
模块、组件开发目录结构说?/b>
应用E序开发目录结构简图:
应用E序开发目录结?/b>
1. ׃目由多个程序员一hq行~码Q所以应用程序开发目录结构和模块、组件开发目录结构的不一栗?
2. 应用E序开发目录结构没有src目录Q但多了一个team目录Q此目录存放所有程序员的classes和Jsp代码?
3. 应用E序开发目录结构下build.xml和模块、组件开发目录结构下的build.xml有很大不同?
4. 由项目组长负责管理etc目录、build.xml、build.bat、build.sh、build.propertiesQ程序员分别理team目录下的属于自己的目录,如程序员tom理team/tom目录?
build.xml~码规范
· 应用E序目录下的build.xml
说明Q在建立build.xmlӞl长只需修改创徏的时间和变量ProjectName{?
模块、组件目录下的build.xml
说明Q在建立build.xmlӞ开发h员只需修改创徏的时间和和变量ProjectName、componentName{?
· 目中的JAVA源代码必L《JAVA开发规范》?
·目中的JSP代码必须按《JSP开发规范》?
· 每位开发小l成员在开发项目时都严格按此规范来q行~写E序Q让目中所有的文档都看h像一个h写的Q增加可L,减少目l中因ؓ换h而带来的损失?
· 每位开发小l成员一定要l对遵守q个规范。当实际应用与下面的规范相抵触时Q记录下原因、潜在后果,以及W合规范需要的条gQ但必须是在让程序有良好的可L的前提下?
在做业务逻辑模块前,先把一些准备工作做出来Q?
建立一些公用的beanQ项目中UCؓpȝ控制器controllerQ,包名为com.cwap.oa.controller.*Q提供给pȝ各模块用。包括对旉、字W的操作Q调试器QY件国际化Q多语言版本Q系l的WEB外壳QMVC模式的Servlet和ActionQ对WEB面昄的控制如树结构、\径结构;{等?
建立一个序列发生器Q包名ؓcom.cwap.oa.sequencegenerator.*Q提供给bean使用Q它用来产生一个唯一的IDQ而且也可用来计数Q也是把它当成计数器用。介l如何取id的方法的文字要写在bean的代码内Q以便生成API后供其它开发h员参阅?
建立一个ServerFacadeQ它为EJB Home提供l一的接口。ServerFacade为程序要用到的所有EJB的home handle提供~存Q提高访问效率。以后查找JNDI Name的方法都应写在接口里Q调用时直接从接口调用?
建立一个翻|制器Q包名ؓcom.cwap.oa.controller.web.page*Q用来进行分|C的理Q以后页面中的分都q|制器理?
· E序中所有的异常处理使用l一的调试器Qbean的名UCؓcom.cwap.oa.controller.util.DebugQ用法见目API?
· E序中所有的日志使用Jakarta-log4j理Q包的名UCؓlog4j-1.2.5.jar
官方URLQhttp://jakarta.apache.org/log4j/docs/index.html
· 攑֜session中的变量l一攑֜一个bean里存储,不直接把session变量名称攑֜JSP、Servlet或Bean内,存储session变量名称的bean为com.cwap.oa.controller.web.util.WebKeysQ取session变量名的Ҏ为getXX()?
· 取session变量的值的Ҏl一攑֜一个bean里,bean的名UCؓcom.cwap.oa.controller.web.util.JSPUtilQ取session变量值的Ҏ为getXX()Q之后要取session变量值就调用JSPUtil中对应的Ҏ?
· 当前pȝ中已知的session变量名有"userid"?userName"?locale"?skin"{,userid为用h识,userName为用户名Uͼlocale为用户选择的地域,skin为用户选择的界面风根{?
使用DAO装SQL语言Ҏ据库的直接操作,DAO采用Factory模式~写?
所有的业务逻辑使用lg技术。每个组件内同时提供EJB版本和DAO版本两种的方?不推荐直接用EJB版本和DAO版本的方法?
· Bean、Servlet、JSP中的多语a文字采用分离技术,多语言文字攑֜资源文g中,保存目录?WEB-INF/classes/multi-langs或其它目录?
· 当前支持的语a有三U:体中文(zh_CNQ、繁体中文(zh_HKQ、英文(en_USQ?
· 多语a理器的名称为com.cwap.oa.controller.util.MultiLangsStringQ用方法见本项目API?
· JSP面中的囄、CSS、JS{文仉应放在统一目录Q目录ؓ/skin/skinName/skinLanguageQ其中skinName为外壛_UͼskinLanguage为外壌a版本Q例?skin/green/zh_CN
· 囄攑֜images目录里,CSS文g攑֜css目录里,JS脚本攑֜js目录里,其它资源(如声韟뀁视频、Flash文g{?存放Ҏ见项目API?
· 外壳理器ؓcom.cwap.oa.controller.web.skin.WebSkinQ调用方法统一接口为com.cwap.oa.controller.web.util.JSPUtil?
· 在线帮助理器ؓcom.cwap.oa.help.*Q调用方法统一接口为com.cwap.oa.help.client.HelpClientHelper?
· 每一个JSP面中提供一个在U帮助链接,用户点击它直接进入到在线帮助中心?
· 建立一个取用户名称的页面,功能包括只取一个用户和取多个用戗?
· 打开取用户名U页面的ҎQ用页面脚本,"javascript:return openWinToGetEmployee(frame,id,name,num)"Q当num?Q代表可以取多个用户Q否则,只能?个用戗?
· 调用Ҏl一接口为com.cwap.oa.controller.web.util.JSPUtilQ检查用h否有权限的方法ؓJSPUtil.isPermission(userid, permissions)
· JSP中检验用戯n份采用include方式Qinclude的文件ؓcheckUser.jsp
验用戯n份是否是一般用P调用Ҏ?
验用戯n份是否是理员,调用Ҏ?
验用戯n份是否是理员,调用Ҏ?
摘自赛_|?http://developer.ccidnet.com/art/322/20021014/27601_1.html, http://developer.ccidnet.com/art/322/20021014/27601_2.html
今天打扫卫生Q整理自q垃圾书时又无意间d了JDBC的书Q就H然惌vq事Q而后是
一恶心,感觉那位仁兄实在是垃圾。超U垃圾!竟然能问q么垃圾的问题。骂他一,
发泄一下,感觉舒服多了?/p>
其实要学JDBCQ只要明白JDBC所L作用那么׃会很难?/p>
JDBC的作用: