欢迎批评指正,也欢迎更多程序员加入完善该系统。
|
这样写怎么看怎么感觉怪异。
>
|
>
> 这样写怎么看怎么感觉怪异。
hehe 用一个模板模式就可以就这些数据库通用操作封装起来,怎么banq没想起来啊。
模板模式建议很好,会加入的,其他getDatas基本都已经使用模板。
侵入特性对于实现软件蓝领化是有好处的,不需要给他们更多的自主余地,模块化编程,只需了解自己该做的,该继承实现的就可以,这种模式对于软件业是有好处的,虽然伤害现在程序员的感情,这话题谈开去了,sorry!
我当然希望国人有自己成功的框架产品。更敬佩那些孜孜不倦研究开发技术,并为软件业指路照明的人。
关于这里所讨论的侵入式,我的想法是:软件产业迟早要进入域类复用的时代,因此域模型尽量不要让它依赖于具体的实现框架。特别对于java开说,技术的变化更是日新月异,也许有一天,人们就从EJB的接口限定中挣脱出来,投入JDO等持久层框架产品中来。到那个时候,被侵入的哪些域类就很难移植了。
不知,我的思考是否正确。也许我是一个极端主义者。
另外,彭老师的框架能否借鉴JDO规范的方式,实现非侵入式应用。也许,有利于框架产品的推广。也许,我还没有看到框架实现所涉及的核心技术,口出枉言,敬请原谅。
>域模型尽量不要让它依赖于具体的实现框架
这种想法是好的,但是实际上并不是这样:Struts中的ActionForm类似界面模型,每个用户必须继承ActionForm。
HttpSession是依赖Web容器的东东,Spring中很多新概念必须依赖它的容器,等等。
等哪一天他们有技术实现不依赖了,Jdon也会采取同样技术。
那么在技术没有达到情况下,如何解决呢?
依靠标准啊,JSR就是这样一个标准组织,这样依据标准API就不依赖具体产品啦。
使用request.getPrinciple可以获得用户的ID或名称,根据它自己去数据库查询这个用户的其它信息。
public static void main(String []args){
// JdbcDao dao = new JdbcDao();
try{
ServiceLocator se = new ServiceLocator();
DataSource dataSource2 = (DataSource) se.getDataSource("java:/NewsDS");
PageIteratorString pagejdbc = null;
pagejdbc = new PageIteratorString(dataSource2);
PageIterator page = new PageIterator();
page = pagejdbc.fetchDatas("","select typeid from T_NEWS_TYPE",0,20);
int count = page.getAllCount();
logger.info(count+"");
}catch(Exception e){
e.printStackTrace();
}
}
然后在jbuilder里面直接运行这个类会提示
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
我已经把mysql-ds.xml拷到jboss/server/default/deploy下了,还需要再加一个jndi-definitions.xml嘛??