1 2
►
Go
共有 25 回复( 2页) 阅读234次
|
|
|
|
|
|
Re: JdonFramework应用案例:新闻发布系统
|
2005年03月14日 15:46
|
|
|
|
|
|
|
|
|
Re: JdonFramework应用案例:新闻发布系统
|
2005年03月14日 22:10
|
|
|
public User getUserByName(String username) throws Exception { logger.debug(" getUserByName " + username); Connection c = null; PreparedStatement ps = null; ResultSet rs = null; User ret = null; try { String GET_USER = "select * from t_user where username = ?"; c = dataSource.getConnection(); ps = c.prepareStatement(GET_USER, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); ps.setString(1, username); rs = ps.executeQuery(); if (rs.first()) { ret = new User(); ret.setUserName(username); ret.setUserId(rs.getString("userid")); ret.setPassword(rs.getString("password"));
} } catch (SQLException se) { throw new Exception("SQLException: " + se.getMessage()); } finally { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } if (c != null) { c.close(); } } return ret; }
|
这样写怎么看怎么感觉怪异。
|
|
|
|
|
|
Re: JdonFramework应用案例:新闻发布系统
|
2005年03月16日 14:39
|
|
|
> > > public User getUserByName(String username) throws > Exception { > logger.debug(" getUserByName " + username); > Connection c = null; > PreparedStatement ps = null; > ResultSet rs = null; > User ret = null; > try { > String GET_USER = > "select * from t_user where username = > username = ?"; > c = dataSource.getConnection(); > ps = c.prepareStatement(GET_USER, > > > > > > > > > > > > > > > ResultSet.TYPE_SCROLL_INSENSITIVE, > > > > > > > > > ResultSet.CONCUR_READ_ONLY); > ps.setString(1, username); > rs = ps.executeQuery(); > if (rs.first()) { > ret = new User(); > ret.setUserName(username); > ret.setUserId(rs.getString("userid")); > ret.setPassword(rs.getString("password")); > > } > } > catch (SQLException se) { > throw new Exception("SQLException: " + > on: " + se.getMessage()); > } > finally { > if (rs != null) { > rs.close(); > } > if (ps != null) { > ps.close(); > } > if (c != null) { > c.close(); > } > } > return ret; > }
|
> > 这样写怎么看怎么感觉怪异。
hehe 用一个模板模式就可以就这些数据库通用操作封装起来,怎么banq没想起来啊。
|
|
|
|
|
|
Re: JdonFramework应用案例:新闻发布系统
|
2005年03月19日 16:20
|
|
|
>界面的用户名、密码是你插入数据库的数据,缺省是admin 123
模板模式建议很好,会加入的,其他getDatas基本都已经使用模板。
|
|
|
|
|
|
Re: JdonFramework应用案例:新闻发布系统
|
2005年03月19日 21:02
|
|
|
|
域模型News等需要继承com.jdon.controller.model.Model接口,破坏了于模型。属于侵入式的应用。大家不会喜欢用的。
|
|
|
|
|
|
Re: JdonFramework应用案例:新闻发布系统
|
2005年03月20日 10:44
|
|
|
按照这种理论,EJB就没人用了,EJB都需要继承的,Spring更需要继承。这句话属于正确的废话。除非消灭语言的继承特性,就没有侵入了,这属于一种极端主义+理想主义言论,初学者切勿偏听偏信。
侵入特性对于实现软件蓝领化是有好处的,不需要给他们更多的自主余地,模块化编程,只需了解自己该做的,该继承实现的就可以,这种模式对于软件业是有好处的,虽然伤害现在程序员的感情,这话题谈开去了,sorry!
|
|
|
|
|
|
关于侵入式应用
|
2005年03月21日 15:05
|
|
|
谢谢彭老师的回复。 我当然希望国人有自己成功的框架产品。更敬佩那些孜孜不倦研究开发技术,并为软件业指路照明的人。
关于这里所讨论的侵入式,我的想法是:软件产业迟早要进入域类复用的时代,因此域模型尽量不要让它依赖于具体的实现框架。特别对于java开说,技术的变化更是日新月异,也许有一天,人们就从EJB的接口限定中挣脱出来,投入JDO等持久层框架产品中来。到那个时候,被侵入的哪些域类就很难移植了。
不知,我的思考是否正确。也许我是一个极端主义者。
另外,彭老师的框架能否借鉴JDO规范的方式,实现非侵入式应用。也许,有利于框架产品的推广。也许,我还没有看到框架实现所涉及的核心技术,口出枉言,敬请原谅。
|
|
|
|
|
|
Re: 关于侵入式应用
|
2005年03月21日 16:15
|
|
|
多谢探讨。
>域模型尽量不要让它依赖于具体的实现框架
这种想法是好的,但是实际上并不是这样:Struts中的ActionForm类似界面模型,每个用户必须继承ActionForm。 HttpSession是依赖Web容器的东东,Spring中很多新概念必须依赖它的容器,等等。 等哪一天他们有技术实现不依赖了,Jdon也会采取同样技术。
那么在技术没有达到情况下,如何解决呢? 依靠标准啊,JSR就是这样一个标准组织,这样依据标准API就不依赖具体产品啦。
|
|
|
|
|
|
Re: JdonFramework应用案例:新闻发布系统
|
2005年03月26日 21:15
|
|
|
|
请教彭老师,在这个发布系统里面,如果我想获得当前登陆的用户名,应该到哪里取那?因为这个系统采用的是jboss实现的jaas,我想知道在容器验证登陆成功之后,把用户的信息存在哪里了?
|
|
|
|
|
|
Re: JdonFramework应用案例:新闻发布系统
|
2005年03月30日 16:03
|
|
|
>容器验证登陆成功之后,把用户的信息存在哪 使用request.getPrinciple可以获得用户的ID或名称,根据它自己去数据库查询这个用户的其它信息。
|
|
|
|
|
|
Re: JdonFramework应用案例:新闻发布系统
|
2005年04月02日 14:46
|
|
|
哦,谢谢解答,我还有个问题,我在jdbcDAO类里面加了如下代码 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嘛??
|
|
|
|
|
|
Re: JdonFramework应用案例:新闻发布系统
|
2005年04月03日 10:02
|
|
|
|
这是jbuilder环境设置问题,可能你的JBuilder环境需要一个jndi-definitions.xml,我从Jb7使用到Jb2005,没有发现过这个问题,可能是你jbuilder导入包缺少点什么。
|
|
|
|
|
|
Re: JdonFramework应用案例:新闻发布系统
|
2006年03月19日 21:18
|
|
|
|
彭老师你好!我下载了Struts+Jdon+POJO/EJB新闻论坛系统的完整运行包,内含的MySQL启动正常,但是JBoss却不能正常启动,点击run.bat后出现"Failed to boot JBoss"的问题,不知道是什么原因,请彭老师指点
|
|
|
|
|
|
Re: JdonFramework应用案例:新闻发布系统
|
2006年03月20日 11:48
|
|
|
|
|
|
|