java - 使用 DAO 的 Bean 类编译错误

标签 java

我有一个从 bean 类输出文本的 xhtml 文件。该程序使用 DAO 架构连接到 MySql 数据库。我下面的代码试图查询数据库以显示所有条目的列表。我在 MyFixBean 类中收到以下错误。

我的 xhtml 文件:

<h:outputText value="#{myFixBean.mydata}" /></h:column>

我的java文件(简化间距):

public class MyFixBean {    

private DAOFactory fix = DAOFactory.getInstance("fix_site2.jdbc");
private MyDataDAO datalist = fix.getMyDataDAO();
private List<MyData> mydata = datalist.list();

public List<MyData> getMydata() {
    return mydata;
  }     
}

public abstract class DAOFactory {
    public MyDataDAO getMyDataDAO() {
        return new MyDataDAOJDBC(this);
    }
}

public interface MyDataDAO {
    List<MyData> list() throws DAOException;
}

public class MyDataDAOJDBC implements MyDataDAO {
   private DAOFactory daoFactory;
   private static final String SQL_FIND_ALL = "SELECT * FROM account_list";

   MyDataDAOJDBC(DAOFactory daoFactory) {
        this.daoFactory = daoFactory;
    }
   public List<MyData> list() throws DAOException {
    Connection connection = null;
    PreparedStatement preparedStatement = null;
    ResultSet resultSet = null;
    List<MyData> data = new ArrayList<MyData>();

    try {
        connection = daoFactory.getConnection();
        preparedStatement = connection.prepareStatement(SQL_FIND_ALL);
        resultSet = preparedStatement.executeQuery();
        while (resultSet.next()) {
            data.add(map(resultSet));
        }
    } catch (SQLException e) {
        throw new DAOException(e);
    } finally {
        close(connection, preparedStatement, resultSet);
    }
    return data;
 }  
}

我收到的错误是:

WARNING: StandardWrapperValve[Faces Servlet]: Servlet.service() for servlet Faces Servlet     threw exception
java.lang.Error: Unresolved compilation problem: 
    Unhandled exception type DAOException
    at mybeans.MyFixBean.<init>(MyFixBean.java:21)

第 21 行:

private List<MyData> mydata = datalist.list();

归功于 BalusC。我的程序基于他的 DAO 教程中的代码。为了节省空间,我将该网站排除在代码之外。

最佳答案

这不是 JSF 也不是 Dao 设计模式实现问题。这是一个基本的 Java 问题: Unresolved 编译问题。确保包 mybeans 中有一个 DAOException 类(或者该异常所在的包)。

基本示例:

package mybeans;

public class DAOException extends RuntimeException {
    //implement the exception as you want/need...
}

关于java - 使用 DAO 的 Bean 类编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20021142/

相关文章:

java - 如何使用自定义 Comparator 或 equals 方法查找 Set 差异?

java - 通知监听器 - onNotificationPosted 不起作用

java - 编译时无限循环?

java - 如何避免在 SpringResourceTemplateResolver 上调用 setApplicationContext?

java - 如何向上旋转这个 ARM ?

java - Guava future 如何上链?

java - 从java发送命令到终端,其中包含空格

java - 如何自动从 IntelliJ 添加测试方法的注释部分?

intellij 与 eclipse 中的 Java 代码生成冲突

java - 将数组元素添加到 2d ArrayList