有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

sqlite Java实现DAO

我正在努力实现这个DOA类。我已经添加了getConnectioncloseConnection方法,但是,当添加ArrayList<Employees>时,我总是会得到一个错误。我在下面添加了我的代码。我已经得到了一个UML图来使用

我做错了什么?有人能给我指出正确的方向吗

Class Diagram

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class EmployeeDAO {

    public static void main(String[] args) throws ClassNotFoundException {
        Connection con = null;
        Statement st = null;
        ResultSet rs = null;

        Class.forName("org.sqlite.JDBC");

        try {
            String dbURL = "jdbc:sqlite:employeeDatabase.sqlite";
            con = DriverManager.getConnection(dbURL);
            st = con.createStatement();
            rs = st.executeQuery("SELECT * FROM employees;");

            while (rs.next()) {
                System.out.println(rs.getString("ID"));
                System.out.println(rs.getString("Name"));
                System.out.println(rs.getString("Gender"));
                System.out.println(rs.getString("DOB"));
                System.out.println(rs.getString("Address"));
                System.out.println(rs.getString("Postcode"));
                System.out.println(rs.getString("NIN"));
                System.out.println(rs.getString("JobTitle"));
                System.out.println(rs.getString("StartDate"));
                System.out.println(rs.getString("Salary"));
                System.out.println(rs.getString("Email"));
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        } finally {
            try {
                if (rs != null) {
                    rs.close();
                }
                if (st != null) {
                    st.close();
                }
                if (con != null) {
                    con.close();
                }
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }
    }

}

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Employees cannot be resolved to a type
Illegal modifier for parameter selectallEmployees; only final is permitted
Employees cannot be resolved to a type at EmployeeDAO.main(EmployeeDAO.java:61)


共 (1) 个答案

  1. # 1 楼答案

    我认为三角形是受保护的或公共的领域。红色框是私有字段。绿色圈都是公共方法。顶部圆上的C是一个构造函数

    你的问题代码不符合这些

    根据您的图表,您的类需要这样开始编写

    public class EmployeeDAO {
    
        private Connection con;
        private Statement st;
        private ResultSet rs;
    
        public EmployeeDAO() { 
            // TODO: Should initialize 'con', probably
        }
    
        public Statement getConnection() { 
            return st; // confused... getConnection should 'return con', no?
        }
    
        public void closeConnection() { 
            if (con != null) con.close();
        }
    
        public ArrayList<Employee> selectAllEmployees() {
            return new ArrayList<Employee>(); // TODO: replace with database stuff
        }
    
        // etc...
    

    你的主要方法根本不应该在那个类中

    public class Controller {
    
        public Controller() { }
    
        public static void main(String[] args) {
            EmployeeDAO dao = new EmployeeDAO();
            List<Employee> emps = dao.selectAllEmployees();
    
            for (Employee e : emps) { 
                // etc...
            }
        }
    }