您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Java >> 调用DAO的问题,大家帮忙解决呀,

调用DAO的问题,大家帮忙解决呀,

来源:网络整理     时间:2016/9/1 0:49:59     关键词:

关于网友提出的“ 调用DAO的问题,大家帮忙解决呀,”问题疑问,本网通过在网上对“ 调用DAO的问题,大家帮忙解决呀,”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 调用DAO的问题,大家帮忙解决呀,
描述:

UserDAO代码:
public interface UserDAO{
public Page getUserList(int start, int count) 
throws UserDAOSysException;;
}
GenericUserDAO 代码:
public class GenericUserDAO implements UserDAO {
  public Page getUserList(int start, int count) throws UserDAOSysException {
    Connection connection = null;
    PreparedStatement statement = null;
    ResultSet resultSet = null;
    try {
      //connection = getDataSource().getConnection();
      //String[] parameterValues = new String[] { locale.toString() };
      //if (TRACE) {
      //  printSQLStatement(sqlStatements, XML_GET_CATEGORIES, parameterValues);
      //}
      //statement = buildSQLStatement(connection, sqlStatements, XML_GET_CATEGORIES, parameterValues);
      DBQuery dbquey = new DBQuery();
  resultSet = dbquey.executeQuery("select * from sysuser");
      if (start >= 0 && resultSet.absolute(start + 1)) {
        boolean hasNext = false;
        List userList = new ArrayList();
        do {
          userList.add(new User(resultSet.getString(1).trim(),
                                      resultSet.getString(2),
                                      resultSet.getString(4),resultSet.getString(5)));
        } while ((hasNext = resultSet.next()) && (--count > 0));
        return new Page(userList, start, hasNext);
      }
      return Page.EMPTY_PAGE;
    } catch (SQLException exception) {
      throw new UserDAOSysException("SQLException: " + exception.getMessage());
    } finally {
      closeAll(connection, statement, resultSet);
    }
  }
  protected static void closeAll(Connection connection, PreparedStatement statement, ResultSet resultSet) {
    if (resultSet != null) {
      try {
        resultSet.close();
      } catch (Exception exception) {}
    }
    if (statement != null) {
      try {
        statement.close();
      } catch (Exception exception) {}
    }
    if (connection != null) {
      try {
        connection.close();
      } catch (Exception exception) {}
    }
    return;
  }
}
Page代码:
public class Page implements Serializable {
  // XXX
  /*
    public static final Page EMPTY_PAGE =
        new Page(Collections.EMPTY_LIST, 0, 0);
        */
    public static final Page EMPTY_PAGE =
        new Page(Collections.EMPTY_LIST, 0, false);
    List objects;
    int start;
  // XXX
  // int containingListSize;
  boolean hasNext;
  // XXX
  /*
    public Page(List l, int s, int cls) {
    */
    public Page(List l, int s, boolean hasNext) {
        objects = new ArrayList(l);
        start = s;
        // XXX
        //containingListSize = cls;
        this.hasNext = hasNext;
    }
    public List getList() { return objects; }
    public boolean isNextPageAvailable() { 
      // XXX
      /*
        return (start + objects.size()) < containingListSize;
        */
        return hasNext;
    }
    public boolean isPreviousPageAvailable() { 
        return start > 0;
    }
    public int getStartOfNextPage() { return start + objects.size(); }
    public int getStartOfPreviousPage() { 
        return Math.max(start-objects.size(), 0); 
    }
    public int getSize() { return objects.size(); }
}
UserDAOFactory 代码:
public class UserDAOFactory {
public static UserDAO getUserDAO() {
UserDAO userDao = null;
//依据系统配置的信息,产生一个实现类
String driverClasses = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
StringTokenizer st = new StringTokenizer(driverClasses);
while (st.hasMoreElements()) {
String driverClassName = st.nextToken().trim();
try {
userDao = (UserDAO) Class.forName(driverClasses).newInstance();
} catch (Exception ne) {

}
return userDao;
}
}
User 代码:
public class User implements java.io.Serializable {
    private String id;
    private String name;
private String email;
    private String LogName;
    public User(String id, String name, String email, String LogName) {
        this.id = id;
        this.name = name;
        this.email = email;
this.LogName = LogName;
    }
    /**
     * Class constructor with no arguments, used by the web tier. 
     */
    public User() {}
    public String getId() { return id; }
    public String getName() { return name; }
    public String getEmail() { return email; }
public String getLogName() { return LogName; }
   
public String toString() {
        return "{ id=" + id + "; name=" + name + "; email=" 
            + email + "; LogName=" 
            + LogName + "}";
    }
}
beanUser 代码:
public class beanUser {
protected UserDAO dao;
public void beanUser() {
try {
//使用工程模式,产生DAO
dao = UserDAOFactory.getUserDAO();
} catch (Exception e) {
}
}
public Page getUserList(int start, int count) {
Page page=null;
try {
//调用DAO,实现业务逻辑
System.out.println("dao====="+dao);
dao = UserDAOFactory.getUserDAO();
page=dao.getUserList(start,count); 
}
catch (UserDAOSysException se) {
}
return page;
}
}
我在jsp页面中这样调用的:


解决方案1:

最好把GenericUserDAO的构造方法定义成protected

解决方案2:

UserDAOFactory 代码:
public class UserDAOFactory {
public static UserDAO getUserDAO() {
UserDAO userDao = null;
String driverClasses = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
try {
  Class.forName(driverClasses);
                                       userDao = new GenericUserDAO();
} catch (ClassNotFoundException cnfe) {

}
return userDao;
}
}


以上介绍了“ 调用DAO的问题,大家帮忙解决呀,”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3691877.html

相关图片

相关文章