论坛首页 Java版 DAO

有关DAO的设计问题

浏览 2810 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2004-07-02
本人接触三层结构开发时间不长,对于DAO方面有一些想法,也不知道对错,大家不妨讨论讨论。
按照我的理解,DAO介于持久层和业务逻辑层的中间,它的主要任务是封装对于数据库的基本操作(主要是四种基本操作)。对于现在,大家已经逐渐开始喜欢用Hibernate。DAO如果依然存在,那么它也应该封装数据库的基本操作。我曾经看了一些有关DAO的帖子,他们都提供了一些方法。但是就这些解决方案来看,我对此提出一些个人的见解和问题:
1、我曾经看见某位大侠对于数据库操作的封装的建议是:在业务逻辑层应该不含有任何的hibernate操作。我不知道这种说法是否正确,但是我觉得这应该是一种值得提倡的做法。在这种情况下,问题也就来了,如果在业务逻辑层不含有任何hibernate操作,那么类似于“模糊查找”或者说非常复杂的一些条件查询是不是就要放到DAO里面去了?这样的话,DAO不仅庞大,而且标准非常不明确,原本我认为DAO里面应该只有4种很基本的方法,但是如果加了这些复杂的操作,DAO就变得难以控制,因为我不知道业务逻辑需要我写什么样得DAO。
2、我目前写DAO的方法是这样的,我个人认为,DAO中的“增”、“删”、“改”三种操作对于每一个特定的表来说都是一致的。所以我把他们写成一个基类,这个基类的输入参数是Object类型的,对于每一个pojo类,直接调用这个基类的函数都能够顺利进行。至于“查”操作,由于我觉得查询的条件必须根据业务逻辑,所以对于查询操作,我是比较困惑的,不知道如何解决这个问题。
3、我在看很多其他人在写DAO的时候,并不考虑一些检验的情况。比如,我们往往会遇到一种情况:在往数据库里面插入一条记录的时候,主键是id(递增)永远不会重复,但是我们同样不希望有重复的名字name。一句简单的save语句应该是可以顺利插入数据库的,而并没有检验name的重复性。我的问题是,对于这些检验的操作,是由业务逻辑层的代码来完成,还是由DAO的操作来完成呢?
以上是我的一些问题和看法,希望大家踊跃批评,积极讨论。
   
时间:2004-07-03
downpour 写道
本人接触三层结构开发时间不长,对于DAO方面有一些想法,也不知道对错,大家不妨讨论讨论。
按照我的理解,DAO介于持久层和业务逻辑层的中间,它的主要任务是封装对于数据库的基本操作(主要是四种基本操作)。对于现在,大家已经逐渐开始喜欢用Hibernate。DAO如果依然存在,那么它也应该封装数据库的基本操作。我曾经看了一些有关DAO的帖子,他们都提供了一些方法。但是就这些解决方案来看,我对此提出一些个人的见解和问题:
1、我曾经看见某位大侠对于数据库操作的封装的建议是:在业务逻辑层应该不含有任何的hibernate操作。我不知道这种说法是否正确,但是我觉得这应该是一种值得提倡的做法。在这种情况下,问题也就来了,如果在业务逻辑层不含有任何hibernate操作,那么类似于“模糊查找”或者说非常复杂的一些条件查询是不是就要放到DAO里面去了?这样的话,DAO不仅庞大,而且标准非常不明确,原本我认为DAO里面应该只有4种很基本的方法,但是如果加了这些复杂的操作,DAO就变得难以控制,因为我不知道业务逻辑需要我写什么样得DAO。
2、我目前写DAO的方法是这样的,我个人认为,DAO中的“增”、“删”、“改”三种操作对于每一个特定的表来说都是一致的。所以我把他们写成一个基类,这个基类的输入参数是Object类型的,对于每一个pojo类,直接调用这个基类的函数都能够顺利进行。至于“查”操作,由于我觉得查询的条件必须根据业务逻辑,所以对于查询操作,我是比较困惑的,不知道如何解决这个问题。
3、我在看很多其他人在写DAO的时候,并不考虑一些检验的情况。比如,我们往往会遇到一种情况:在往数据库里面插入一条记录的时候,主键是id(递增)永远不会重复,但是我们同样不希望有重复的名字name。一句简单的save语句应该是可以顺利插入数据库的,而并没有检验name的重复性。我的问题是,对于这些检验的操作,是由业务逻辑层的代码来完成,还是由DAO的操作来完成呢?
以上是我的一些问题和看法,希望大家踊跃批评,积极讨论。 :D

一个好的DAO类层次应该基于接口,接口的设计特定于你的应用,比如一些模糊查询等等,你可以在接口上构造这种特殊的查询方法。
特定的实现在你的DAO实现类,请记住一点,如果你的客户需要这种查询,ok,那么就实现它,如果这只是你的考虑,ok,请去掉它。
   
0 请登录后投票
时间:2004-07-03
spring framework 中validation被整合在controller在层

dao方法应该根据业务需要出发,但有一致的命名规则也非常重要,将crud将将抽象为接口或基类,这是通常的做法,但查询应该根据需求而定,一个传入where或sql语句的dao函数我想是需要避免的
   
0 请登录后投票
时间:2004-07-04
jjx 写道
一个传入where或sql语句的dao函数我想是需要避免的

to avoid? but i want 2 know how to solve it?
   
0 请登录后投票
时间:2004-07-04
我做的DAO封装了一般数据库的操作.当然虽然这很复杂了,仍然是不能满足特定的程序需要的. 所以我用工厂模式来做这个DAO. 当需要有扩展时,用类的"适配器"模式来扩充这个基本的DAO. 在新的接口中,只保留需要的DAO方法,以减少他的表现出来的复杂程度,下面贴一个DAO代码! 为了以后开发程序少写代码,已经在这个DAO中加入了一些假设需要到的操作
package com.yours.admin.dao;

import java.util.List;
import java.util.Iterator;
import net.sf.hibernate.Hibernate;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Transaction;
import net.sf.hibernate.Query;
import net.sf.hibernate.Session;
import com.yours.admin.jdo.Companyability;
import com.yours.datamodel.hibernate.HibernateUtil;

/**
* <p>Title: DAO</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author 段洪杰
* @version 1.0
*/

public class CompanyabilityDAOImpl implements CompanyabilityDAO{


/**
* 增加记录
* @param companyability Companyability
*/
public void setCompanyability(Companyability companyability) throws Exception {
Transaction tx = null;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
tx = session.beginTransaction();
session.save(companyability);
tx.commit();
}
catch (Exception e) {
if (tx!=null) tx.rollback();
throw e;
}
finally {
//session.close();
}
}

/**
* 通过ID取得记录
* @param id String
* @return Companyability
*/
public Companyability getCompanyabilityById(String id) throws Exception {
Companyability companyability = null;
Transaction tx = null;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
companyability=(Companyability)session.load(Companyability.class, id);
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return companyability;
}

/**
* 修改记录
* @param Companyability companyability
*/
public void modifyCompanyability(Companyability companyability) throws Exception {
Transaction tx = null;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
tx = session.beginTransaction();
session.update(companyability);
tx.commit();
}
catch (Exception e) {
if (tx!=null) tx.rollback();
throw e;
}
finally {
//session.close();
}
}

/**
* 删除记录
* @param Companyability companyability
*/
public void removeCompanyability(Companyability companyability) throws Exception {
Transaction tx = null;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
tx = session.beginTransaction();
session.delete(companyability);
tx.commit();
}
catch (Exception e) {
if (tx!=null) tx.rollback();
throw e;
}
finally {
//session.close();
}
}

////////////////////////////////////////////////////////
///// ///
/////以下部份不带审核功能 ///
///// ///
////////////////////////////////////////////////////////

/**
* 取记录总数
* @return int
*/
public int getCompanyabilitysCount() throws Exception {
int count = 0;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
count = ( (Integer) session.iterate("select count(*) from Companyability").next()).intValue();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return count;
}
/**
* 取所有记录集合
* @return Iterator
*/
public Iterator getAllCompanyabilitys() throws Exception {
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;
}

/**
* 取记录集合
* @return Iterator
* @param int position, int length
*/
public Iterator getCompanyabilitys(int position, int length) throws Exception {
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;
}


/**
* 取第一条记录
* @throws Exception
* @return Station
*/
public Companyability getFirstCompanyability()throws Exception{
Iterator iterator=null;
Companyability companyability=null;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
String queryString =" select companyability from Companyability as companyability order by companyability.id desc";
try {
//创建查询
Query query = session.createQuery(queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
if(iterator.hasNext())
companyability=(Companyability)iterator.next();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return companyability;

}
/**
* 取最后一条记录
* @throws Exception
* @return Station
*/
public Companyability getLastCompanyability()throws Exception{
Iterator iterator=null;
Companyability companyability=null;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
String queryString =" select companyability from Companyability as companyability order by companyability.id asc";
try {
//创建查询
Query query = session.createQuery(queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
if(iterator.hasNext())
companyability=(Companyability)iterator.next();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return companyability;

}

////////////////////////////////////////////////////////
///// ///
///// 以下部份表中要有特定字段才能正确运行 查询部份 ///
///// ///
///////////////////////////////////////////////////////
/**
* 取符合条件记录总数, 模糊查询条件.[表中要有 title 字段]
* @return int
* @param String text
*/
public int getCompanyabilitysCount(String text) throws Exception {
int count = 0;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
count = ( (Integer) session.iterate("select count(*) from Companyability as companyability where companyability.title like '%"+text+"%'").next()).intValue();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return count;
}

/**
* 取所有符合条件记录集合, 模糊查询条件.[表中要有 title 字段]
* @return Iterator
* @param String text
*/

public Iterator getAllCompanyabilitys(String text) throws Exception{
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.title like '%"+text+"%' order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;
}

/**
* 取符合条件记录集合, 模糊查询条件.[表中要有 title 字段]
* @return Iterator
* @param String text,int position, int length
*/
public Iterator getCompanyabilitys(String text, int position, int length) throws Exception {
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.title like '%"+text+"%' order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;
}

////////////////////////////////////////////////////////
///// ///
///// 以下部份表中要有特定字段才能正确运行 注册相关 ///
///// ///
////////////////////////////////////////////////////////

/**
* 取符合条件记录总数.[ 表中要有 registername 字段]
* @return int
* @param String text
*/
public int getCompanyabilitysCountByRegisterName(String registerName) throws Exception {
int count = 0;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
count = ( (Integer) session.iterate("select count(*) from Companyability as companyability where companyability.registername = '"+registerName+"'").next()).intValue();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return count;
}

/**
* 通过注册名取得一条记录,如有多条,只取第一条.[表中要有 registername字段]
* @param registername String
* @return Companyability
*/
public Companyability getCompanyabilityByRegisterName(String registerName) throws Exception {
Iterator iterator=null;
Companyability companyability=null;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
String queryString =" select companyability from Companyability as companyability where companyability.registername='"+registerName+"' order by companyability.id desc";
try {
//创建查询
Query query = session.createQuery(queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
if(iterator.hasNext())
companyability=(Companyability)iterator.next();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return companyability;
}

/**
* 通过注册名取得所有记录集合.[表中要有 registername字段]
* @param registername String
* @return Iterator
*/
public Iterator getAllCompanyabilitysByRegisterName(String registerName) throws Exception{
Iterator iterator=null;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
String queryString =" select companyability from Companyability as companyability where companyability.registername='"+registerName+"' order by companyability.id desc";
try {
//创建查询
Query query = session.createQuery(queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;
}

/**
* 通过注册名取得记录列表.[表中要有 registername字段]
* @param registername String
* @return Iterator
*/
public Iterator getCompanyabilitysByRegisterName(String registerName,int position, int length) throws Exception {
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.registername='"+registerName+"' order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;
}

////////////////////////////////////////////////////////
///// ///
///// 以下部份表中要有特定字段才能正确运行 一级版块 ///
///// ///
////////////////////////////////////////////////////////

/**
* 取记录总数.[ 表中要有 board 字段]
* @return int
* @param String board
*/
public int getCompanyabilitysCountByBoard(String board) throws Exception{
int count = 0;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
count = ( (Integer) session.iterate("select count(*) from Companyability as companyability where companyability.board = '"+board+"'").next()).intValue();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return count;
}


/**
* 通过版块名取得所有记录集合.[表中要有 board字段]
* @param Board String
* @return Iterator
*/
public Iterator getAllCompanyabilitysByBoard(String board) throws Exception {
Iterator iterator=null;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
String queryString =" select companyability from Companyability as companyability where companyability.board='"+board+"' order by companyability.id desc";
try {
//创建查询
Query query = session.createQuery(queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;
}

/**
* 通过版块名取得记录列表.[表中要有 board字段]
* @param Board String
* @return Iterator
*/
public Iterator getCompanyabilitysByBoard(String board,int position, int length) throws Exception{
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.board='"+board+"' order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;

}

/**
* 取符合条件记录总数.[ 表中要有 board 字段,title] 模糊查询title
* @return int
* @param String board ,String text
*/
public int getCompanyabilitysCountByBoard(String board,String text) throws Exception{
int count = 0;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
count = ( (Integer) session.iterate("select count(*) from Companyability as companyability where companyability.board='"+board+"' and companyability.title like '%"+text+"%'").next()).intValue();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return count;

}

/**
* 通过版块名取得记录列表.[表中要有 board字段] 模糊查询title
* @param String board,int position, int length
* @return Iterator
*/
public Iterator getCompanyabilitysByBoard(String board,int position, int length,String text) throws Exception{
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.board='"+board+"' and companyability.title like '%"+text+"%' order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;

}

////////////////////////////////////////////////////////
///// ///
///// 以下部份表中要有特定字段才能正确运行 二级版块 ///
///// ///
////////////////////////////////////////////////////////

/**
* 取记录总数.[ 表中要有 board board1 字段]
* @return int
* @param String board1,String board
*/
public int getCompanyabilitysCountByBoard1(String board1,String board) throws Exception{
int count = 0;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
count = ( (Integer) session.iterate("select count(*) from Companyability as companyability where companyability.board1 = '"+board1+"' and companyability.board = '"+board+"'").next()).intValue();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return count;
}


/**
* 通过版块名取得所有记录集合.[表中要有 board board1 字段]
* @param Board String,String board1
* @return Iterator
*/
public Iterator getAllCompanyabilitysByBoard1(String board1,String board) throws Exception {
Iterator iterator=null;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
String queryString =" select companyability from Companyability as companyability where companyability.board1='"+board1+"' and companyability.board='"+board+"' order by companyability.id desc";
try {
//创建查询
Query query = session.createQuery(queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;
}

/**
* 通过版块名取得记录列表.[表中要有 board board1 字段]
* @param Board1 String,String board
* @return Iterator
*/
public Iterator getCompanyabilitysByBoard1(String board1,String board,int position, int length) throws Exception{
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.board1='"+board1+"' and companyability.board='"+board+"' order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;

}

/**
* 取符合条件记录总数.[ 表中要有 board board1 字段,title] 模糊查询title
* @return int
* @param String board1,String board ,String text
*/
public int getCompanyabilitysCountByBoard1(String board1,String board,String text) throws Exception{
int count = 0;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
count = ( (Integer) session.iterate("select count(*) from Companyability as companyability where companyability.board1='"+board1+"' and companyability.board='"+board+"' and companyability.title like '%"+text+"%'").next()).intValue();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return count;

}

/**
* 通过版块名取得记录列表.[表中要有 board board1 字段] 模糊查询title
* @param String board1,String board,int position, int length
* @return Iterator
*/
public Iterator getCompanyabilitysByBoard1(String board1,String board,int position, int length,String text) throws Exception{
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.board1='"+board1+"' and companyability.board='"+board+"' and companyability.title like '%"+text+"%' order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;

}
////////////////////////////////////////////////////////
///// ///
///// 以下部份表中要有特定字段才能正确运行 三级版块 ///
///// ///
////////////////////////////////////////////////////////

/**
* 取记录总数.[ 表中要有 board2 board1 board字段]
* @return int
* @param String board2,String board1,String board
*/
public int getCompanyabilitysCountByBoard2(String board2,String board1,String board) throws Exception{
int count = 0;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
count = ( (Integer) session.iterate("select count(*) from Companyability as companyability where companyability.board2 = '"+board2+"' and companyability.board1 = '"+board1+"' and companyability.board = '"+board+"'").next()).intValue();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return count;
}


/**
* 通过版块名取得所有记录集合.[表中要有 board2 board1 board字段]
* @param Board String,String board1
* @return Iterator
*/
public Iterator getAllCompanyabilitysByBoard2(String board2,String board1,String board) throws Exception {
Iterator iterator=null;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
String queryString =" select companyability from Companyability as companyability where companyability.board2 = '"+board2+"' and companyability.board1='"+board1+"' and companyability.board='"+board+"' order by companyability.id desc";
try {
//创建查询
Query query = session.createQuery(queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;
}

/**
* 通过版块名取得记录列表.[表中要有 board2 board1 board字段]
* @param Board1 String,String board
* @return Iterator
*/
public Iterator getCompanyabilitysByBoard2(String board2,String board1,String board,int position, int length) throws Exception{
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.board2 = '"+board2+"' and companyability.board1='"+board1+"' and companyability.board='"+board+"' order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;

}

/**
* 取符合条件记录总数.[ 表中要有 board2 board1 board字段,title] 模糊查询title
* @return int
* @param String board2,String board1,String board ,String text
*/
public int getCompanyabilitysCountByBoard2(String board2,String board1,String board,String text) throws Exception{
int count = 0;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
count = ( (Integer) session.iterate("select count(*) from Companyability as companyability where companyability.board2 = '"+board2+"' and companyability.board1='"+board1+"' and companyability.board='"+board+"' and companyability.title like '%"+text+"%'").next()).intValue();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return count;

}

/**
* 通过版块名取得记录列表.[表中要有 board2 board1 board字段] 模糊查询title
* @param String board2,String board1,String board,int position, int length
* @return Iterator
*/
public Iterator getCompanyabilitysByBoard2(String board2,String board1,String board,int position, int length,String text) throws Exception{
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.board2 = '"+board2+"' and companyability.board1='"+board1+"' and companyability.board='"+board+"' and companyability.title like '%"+text+"%' order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;

}
////////////////////////////////////////////////////////
///// ///
/////以下部份带有审核功能 ///
///// ///
////////////////////////////////////////////////////////

/**
* 取记录总数
* @return int
* @param int isAuditing
*/
public int getCompanyabilitysCount(int isAuditing) throws Exception {
int count = 0;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
count = ( (Integer) session.iterate("select count(*) from Companyability as companyability where companyability.isauditing="+isAuditing).next()).intValue();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return count;
}
/**
* 取所有记录集合
* @return Iterator
* @param int position, int length,int isAuditing
*/
public Iterator getAllCompanyabilitys(int isAuditing) throws Exception {
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.isauditing="+isAuditing+" order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;
}

/**
* 取记录集合
* @return Iterator
* @param int position, int length,int isAuditing
*/
public Iterator getCompanyabilitys(int position, int length,int isAuditing) throws Exception {
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.isauditing="+isAuditing+" order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;
}



////////////////////////////////////////////////////////
///// ///
///// 要有特定字段才能正确运行 有审核功能 查询部份 ///
///// ///
///////////////////////////////////////////////////////
/**
* 取符合条件记录总数, 模糊查询条件.[表中要有 title 字段]
* @return int
* @param String text,int isAuditing
*/
public int getCompanyabilitysCount(String text,int isAuditing) throws Exception {
int count = 0;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
count = ( (Integer) session.iterate("select count(*) from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.title like '%"+text+"%'").next()).intValue();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return count;
}

/**
* 取所有符合条件记录集合, 模糊查询条件.[表中要有 title 字段]
* @return Iterator
* @param String text,int isAuditing
*/

public Iterator getAllCompanyabilitys(String text,int isAuditing) throws Exception{
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.title like '%"+text+"%' order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;
}

/**
* 取符合条件记录集合, 模糊查询条件.[表中要有 title 字段]
* @return Iterator
* @param String text,int position, int length,int isAuditing
*/
public Iterator getCompanyabilitys(String text, int position, int length,int isAuditing) throws Exception {
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.title like '%"+text+"%' order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;
}

////////////////////////////////////////////////////////
///// ///
///// 要有特定字段才能正确运行 有审核功能 注册相关 ///
///// ///
////////////////////////////////////////////////////////

/**
* 取符合条件记录总数.[ 表中要有 registername isauditing字段]
* @return int
* @param String text,int isAuditing
*/
public int getCompanyabilitysCountByRegisterName(String registerName,int isAuditing) throws Exception {
int count = 0;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
count = ( (Integer) session.iterate("select count(*) from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.registername = '"+registerName+"'").next()).intValue();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return count;
}

/**
* 通过注册名取得一条记录,如有多条,只取第一条.[表中要有 registername isauditing字段]
* @param registername String,int isAuditing
* @return Companyability
*/
public Companyability getCompanyabilityByRegisterName(String registerName,int isAuditing) throws Exception {
Iterator iterator=null;
Companyability companyability=null;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
String queryString =" select companyability from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.registername='"+registerName+"' order by companyability.id desc";
try {
//创建查询
Query query = session.createQuery(queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
if(iterator.hasNext())
companyability=(Companyability)iterator.next();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return companyability;
}

/**
* 通过注册名取得所有记录集合.[表中要有 registername isauditing字段]
* @param registername String,int isAuditing
* @return Iterator
*/
public Iterator getAllCompanyabilitysByRegisterName(String registerName,int isAuditing) throws Exception{
Iterator iterator=null;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
String queryString =" select companyability from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.registername='"+registerName+"' order by companyability.id desc";
try {
//创建查询
Query query = session.createQuery(queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;
}

/**
* 通过注册名取得记录列表.[表中要有 registername isauditing字段]
* @param registername String,int isAuditing
* @return Iterator
*/
public Iterator getCompanyabilitysByRegisterName(String registerName,int position, int length,int isAuditing) throws Exception {
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.registername='"+registerName+"' order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;
}

////////////////////////////////////////////////////////
///// ///
///// 要有特定字段才能正确运行 有审核功能 一级版块 ///
///// ///
////////////////////////////////////////////////////////

/**
* 取记录总数.[ 表中要有 board isauditing字段]
* @return int
* @param String board,int isAuditing
*/
public int getCompanyabilitysCountByBoard(String board,int isAuditing) throws Exception{
int count = 0;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
count = ( (Integer) session.iterate("select count(*) from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.board = '"+board+"'").next()).intValue();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return count;
}


/**
* 通过版块名取得所有记录集合.[表中要有 board isauditing字段]
* @param Board String,int isAuditing
* @return Iterator
*/
public Iterator getAllCompanyabilitysByBoard(String board,int isAuditing) throws Exception {
Iterator iterator=null;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
String queryString =" select companyability from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.board='"+board+"' order by companyability.id desc";
try {
//创建查询
Query query = session.createQuery(queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;
}

/**
* 通过版块名取得记录列表.[表中要有 board isauditing字段]
* @param Board String,int isAuditing
* @return Iterator
*/
public Iterator getCompanyabilitysByBoard(String board,int position, int length,int isAuditing) throws Exception{
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.board='"+board+"' order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;

}

/**
* 取符合条件记录总数.[ 表中要有 board isauditing字段,title] 模糊查询title
* @return int
* @param String board ,String text,int isAuditing
*/
public int getCompanyabilitysCountByBoard(String board,String text,int isAuditing) throws Exception{
int count = 0;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
count = ( (Integer) session.iterate("select count(*) from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.board='"+board+"' and companyability.title like '%"+text+"%'").next()).intValue();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return count;

}

/**
* 通过版块名取得记录列表.[表中要有 board字段 isauditing] 模糊查询title
* @param String board,int position, int length,int isAuditing
* @return Iterator
*/
public Iterator getCompanyabilitysByBoard(String board,int position, int length,String text,int isAuditing) throws Exception{
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.board='"+board+"' and companyability.title like '%"+text+"%' order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;

}

////////////////////////////////////////////////////////
///// ///
/////要有特定字段才能正确运行 有审核功能 二级版块 ///
///// ///
////////////////////////////////////////////////////////

/**
* 取记录总数.[ 表中要有 board board1 isauditing字段]
* @return int
* @param String board1,String board,int isAuditing
*/
public int getCompanyabilitysCountByBoard1(String board1,String board,int isAuditing) throws Exception{
int count = 0;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
count = ( (Integer) session.iterate("select count(*) from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.board1 = '"+board1+"' and companyability.board = '"+board+"'").next()).intValue();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return count;
}


/**
* 通过版块名取得所有记录集合.[表中要有 board board1 isauditing字段]
* @param Board String,String board1,int isAuditing
* @return Iterator
*/
public Iterator getAllCompanyabilitysByBoard1(String board1,String board,int isAuditing) throws Exception {
Iterator iterator=null;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
String queryString =" select companyability from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.board1='"+board1+"' and companyability.board='"+board+"' order by companyability.id desc";
try {
//创建查询
Query query = session.createQuery(queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;
}

/**
* 通过版块名取得记录列表.[表中要有 board board1 isauditing 字段]
* @param Board1 String,String board,int position, int length,int isAuditing
* @return Iterator
*/
public Iterator getCompanyabilitysByBoard1(String board1,String board,int position, int length,int isAuditing) throws Exception{
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.board1='"+board1+"' and companyability.board='"+board+"' order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;

}

/**
* 取符合条件记录总数.[ 表中要有 board board1 isauditing字段,title] 模糊查询title
* @return int
* @param String board1,String board ,String text,int isAuditing
*/
public int getCompanyabilitysCountByBoard1(String board1,String board,String text,int isAuditing) throws Exception{
int count = 0;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
count = ( (Integer) session.iterate("select count(*) from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.board1='"+board1+"' and companyability.board='"+board+"' and companyability.title like '%"+text+"%'").next()).intValue();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return count;

}

/**
* 通过版块名取得记录列表.[表中要有 board board1 isauditing 字段] 模糊查询title
* @param String board1,String board,int position, int length,int isAuditing
* @return Iterator
*/
public Iterator getCompanyabilitysByBoard1(String board1,String board,int position, int length,String text,int isAuditing) throws Exception{
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.board1='"+board1+"' and companyability.board='"+board+"' and companyability.title like '%"+text+"%' order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;

}
////////////////////////////////////////////////////////
///// ///
/////要有特定字段才能正确运行 有审核功能 三级版块 ///
///// ///
////////////////////////////////////////////////////////

/**
* 取记录总数.[ 表中要有 board2 board1 board isauditing字段]
* @return int
* @param String board2,String board1,String board,int isAuditing
*/
public int getCompanyabilitysCountByBoard2(String board2,String board1,String board,int isAuditing) throws Exception{
int count = 0;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
count = ( (Integer) session.iterate("select count(*) from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.board2 = '"+board2+"' and companyability.board1 = '"+board1+"' and companyability.board = '"+board+"'").next()).intValue();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return count;
}


/**
* 通过版块名取得所有记录集合.[表中要有 board2 board1 board isauditing字段]
* @param Board String,String board1,int isAuditing
* @return Iterator
*/
public Iterator getAllCompanyabilitysByBoard2(String board2,String board1,String board,int isAuditing) throws Exception {
Iterator iterator=null;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
String queryString =" select companyability from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.board2 = '"+board2+"' and companyability.board1='"+board1+"' and companyability.board='"+board+"' order by companyability.id desc";
try {
//创建查询
Query query = session.createQuery(queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;
}

/**
* 通过版块名取得记录列表.[表中要有 board2 board1 board isauditing字段]
* @param Board1 String,String board,int isAuditing
* @return Iterator
*/
public Iterator getCompanyabilitysByBoard2(String board2,String board1,String board,int position, int length,int isAuditing) throws Exception{
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.board2 = '"+board2+"' and companyability.board1='"+board1+"' and companyability.board='"+board+"' order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;

}

/**
* 取符合条件记录总数.[ 表中要有 board2 board1 board isauditing字段,title] 模糊查询title
* @return int
* @param String board2,String board1,String board ,String text,int isAuditing
*/
public int getCompanyabilitysCountByBoard2(String board2,String board1,String board,String text,int isAuditing) throws Exception{
int count = 0;
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
count = ( (Integer) session.iterate("select count(*) from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.board2 = '"+board2+"' and companyability.board1='"+board1+"' and companyability.board='"+board+"' and companyability.title like '%"+text+"%'").next()).intValue();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return count;

}

/**
* 通过版块名取得记录列表.[表中要有 board2 board1 board isauditing字段] 模糊查询title
* @param String board2,String board1,String board,int position, int length,int isAuditing
* @return Iterator
*/
public Iterator getCompanyabilitysByBoard2(String board2,String board1,String board,int position, int length,String text,int isAuditing) throws Exception{
Iterator iterator=null;
String queryString =" select companyability from Companyability as companyability where companyability.isauditing="+isAuditing+" and companyability.board2 = '"+board2+"' and companyability.board1='"+board1+"' and companyability.board='"+board+"' and companyability.title like '%"+text+"%' order by companyability.id desc";
Session session = HibernateUtil.currentSession();
//Session session = HibernateUtil.sessionFactory.openSession();
try {
//创建查询
Query query = session.createQuery(queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
}
catch (Exception e) {
throw e;
}
finally {
//session.close();
}
return iterator;
}
}
   
0 请登录后投票
时间:2004-07-04
说实话,我个人觉得还不如传sql语句进去呢,至少DAO不用那么庞大,另外,我个人认为传入sql进去,至少DAO就可以于业务逻辑完全无关。按照楼上的写法,我是否可以认为:DAO是一个太不确定的东西,以至于开发业务逻辑的程序员和开发DAO的程序员必须事先协商接口?
我的主要问题是:为什么不采用接口统一?只有四个操作,“增”、“删”、“改”一致,“查”采用输入sql的办法?
   
0 请登录后投票
时间:2004-07-05
downpour 写道
说实话,我个人觉得还不如传sql语句进去呢,至少DAO不用那么庞大,另外,我个人认为传入sql进去,至少DAO就可以于业务逻辑完全无关。按照楼上的写法,我是否可以认为:DAO是一个太不确定的东西,以至于开发业务逻辑的程序员和开发DAO的程序员必须事先协商接口?
我的主要问题是:为什么不采用接口统一?只有四个操作,“增”、“删”、“改”一致,“查”采用输入sql的办法?


我曾经构思过一件查询条件放入MAP,传递MAP到DAO方法,自动生成查询HQL字串的方法,不过没试用过. 因为自已开发程序.如果每次都构思查询条件,做的多了也会出错, 不如把常用的加到DAO里,需要时把DAO复制一份,来成批修改一下字串值就可以成为新的DAO,反而快速和不易出错.
   
0 请登录后投票
时间:2004-07-05
我想过借鉴hibernat的criteria来构造查询,不过,那样感觉,要自己构造criterial和expression类,总感觉换汤不换药。

问一下,dhj1,你的DAO中的操作后,session关闭的语句注释掉了。请问,你打算什么时候关掉那个session?
   
0 请登录后投票
时间:2004-07-05
nesta 写道
我想过借鉴hibernat的criteria来构造查询,不过,那样感觉,要自己构造criterial和expression类,总感觉换汤不换药。

问一下,dhj1,你的DAO中的操作后,session关闭的语句注释掉了。请问,你打算什么时候关掉那个session?


Filter !!!!!
   
0 请登录后投票
时间:2004-07-09
DAO方面有没有什么比较正规的标准?我是指从DAO的实现模式(例如:工厂模式),DAO的实现方法的一套类似框架的标准?
   
0 请登录后投票
论坛首页 Java版 DAO

跳转论坛:
JavaEye推荐