Java 使用DAO的Bean类中的编译错误

Java 使用DAO的Bean类中的编译错误,java,Java,我有一个从bean类输出文本的xhtml文件。该程序使用DAO体系结构连接到MySql数据库。下面的代码试图查询数据库以显示所有条目的列表。我在MyFixBean类中收到以下错误 我的xhtml文件: <h:outputText value="#{myFixBean.mydata}" /></h:column> 我的java文件(间距简化): 公共类MyFixBean{ 私有DAOFactory fix=DAOFactory.getInstance(“fix_sit

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

我的xhtml文件:

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

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

公共类MyFixBean{
私有DAOFactory fix=DAOFactory.getInstance(“fix_site2.jdbc”);
私有MyDataDAO datalist=fix.getMyDataDAO();
私有列表mydata=datalist.List();
公共列表getMydata(){
返回mydata;
}     
}
公共抽象类工厂{
公共MyDataDAO getMyDataDAO(){
返回新的MyDataDAOJDBC(this);
}
}
公共接口MyDataDAO{
List()抛出异常;
}
公共类MyDataDAOJDBC实现MyDataDAO{
私营道场道场;
私有静态最终字符串SQL\u FIND\u ALL=“从帐户列表中选择*”;
MyDataDAOJDBC(DAOFactory DAOFactory){
this.daoFactory=daoFactory;
}
public List()引发异常{
连接=空;
PreparedStatement PreparedStatement=null;
ResultSet ResultSet=null;
列表数据=新的ArrayList();
试一试{
connection=daoFactory.getConnection();
preparedStatement=connection.prepareStatement(SQL\u FIND\u ALL);
resultSet=preparedStatement.executeQuery();
while(resultSet.next()){
data.add(map(resultSet));
}
}捕获(SQLE异常){
抛出新的异常(e);
}最后{
关闭(连接、准备的报表、结果集);
}
返回数据;
}  
}
我收到的错误是:

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)
警告:StandardWrapperValve[Faces Servlet]:Servlet的Servlet.service()引发异常
java.lang.Error:未解决的编译问题:
未处理的异常类型为异常
在mybeans.MyFixBean。(MyFixBean.java:21)
其中第21行:

private List<MyData> mydata = datalist.list();
private List mydata=datalist.List();
归功于巴卢斯克。我的程序基于他的DAO教程中的代码。为了节省空间,我在代码中省略了该站点。

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

当您的
datalist.list()
抛出异常时,您需要处理可能的
dao异常。要么在其周围放置try/catch,要么重新抛出异常

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

基本样本:

package mybeans;

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

问题是编译错误。看起来OP忘记声明一个
DAOException
类。
package mybeans;

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