posts - 25, comments - 69, trackbacks - 0, articles - 2

自己写了一个简单的Dao

Posted on 2006-04-10 09:22 壮士日志 阅读(722) 评论(5)  编辑  收藏

最近做一个基于J2EE的WEB项目,该项目的特点是查询比较多,本来设计中打算用hibernate实现持久层,但是基于项目时间紧张和开发人员不熟悉hibernate而取消.于是想到了传统的Dao,加上最近看了好多关于类反射的东西,于是自己写了一个简单的Dao,基本的方法很简单,输入sql语句/参数/,返回String二维数组(直接在页面显示).由于只是针对web显示,所以在设计上加入了一些小技巧,例如数组的第一行是表头信息,通过参数传入,如果参数为null则根据dbms metadata来读取,相关的api列表如下:

其中以Simple开头的查询方法只支持单条查询并直接返回结果,其打开和关闭连接等过程在内部自动实现.以exec开头的的方法支持多条查询和update,支持事务,要自己打开(init)和关闭(close)连接,下面是一个stuts actionbean里面的代码片断,是不是看起来很简单呢:)

  Dao d = new Dao();
  String[][] result = null;
  String sql="select name,phone from users where schoolID=? and classID=?"
  result=d.simplyQuery(sql,
    new String[]{"姓名","电话号码"},  //表头
    new String[]{theForm.getSchoolID(),theForm.getClassID}   //参数
    );
  request.getSession().setAttribute("xxxx..",result);

Feedback

# re: 自己写了一个简单的Dao  回复  更多评论   

2006-04-10 09:35 by 壮士的烂笔头:)
晕,改了几次上面的图片都无法按原来的大小显示:(

# re: 自己写了一个简单的Dao  回复  更多评论   

2006-04-10 09:50 by 剑事
request.getSession().setAttribute("xxxx..",result);
很错误的用法

# re: 自己写了一个简单的Dao  回复  更多评论   

2006-04-10 09:53 by 壮士的烂笔头:)
为什么呢?说来听听

# re: 自己写了一个简单的Dao  回复  更多评论   

2006-04-10 10:23 by JustJava
把result放到session中,什么时候关闭数据库连接呢?

# re: 自己写了一个简单的Dao  回复  更多评论   

2006-04-10 10:27 by 壮士的烂笔头:)
放到session之前就已经关闭掉了
public String[][] simplyQuery(String sql,String[] titles,Object[] params)
{
try {
this.init();
return this.execSQL(sql,titles,params);
} catch (Exception e) {
// TODO Auto-generated catch block
logger.error(e.getMessage());
return null;
}
finally
{
this.close();
}
}

只有注册用户登录后才能发表评论。


网站导航: