создать новый объект с использованием базы данных - PullRequest
0 голосов
/ 21 марта 2019

Я хочу использовать свою базу данных для выполнения функции addmodule, но она должна быть в цикле, а не просто в одном модуле, я хочу добавить все данные из базы данных для создания функции addModule. В моей базе данных есть соответствующая информация, но я не знаю, как включить ее в функцию addmodule для создания нового объекта (модуля)

schedule.addModule (1, "cs1", "Информатика", new int [] {1, 2});

и это мой addModule:

public void addModule (int moduleId, String moduleCode, String module, int ProfessorIds []) { this.modules.put (moduleId, новый модуль (moduleId, moduleCode, module, ProfessorIds)); } * +1010 *

Каким будет подготовленный оператор для добавления модуля с использованием базы данных? но с массивом, так что добавляет все это

1 Ответ

0 голосов
/ 22 марта 2019

Вы можете создать класс модели для хранения записей базы данных.

public class Course {

    int moduleId;
    String moduleCode;
    String module;
    List<Integer> professorIds;

    public Course() {

    }

    public Course(int moduleId, String moduleCode, String module, List<Integer> professorIds) {
        this.moduleId = moduleId;
        this.moduleCode = moduleCode;
        this.module = module;
        this.professorIds = professorIds;
    }

    public int getModuleId() {
        return moduleId;
    }

    public void setModuleId(int moduleId) {
        this.moduleId = moduleId;
    }

    public String getModuleCode() {
        return moduleCode;
    }

    public void setModuleCode(String moduleCode) {
        this.moduleCode = moduleCode;
    }

    public String getModule() {
        return module;
    }

    public void setModule(String module) {
        this.module = module;
    }

    public List<Integer> getProfessorIds() {
        return professorIds;
    }

    public void setProfessorIds(List<Integer> professorIds) {
        this.professorIds = professorIds;
    }

}

Используйте следующий способ для создания экземпляра вашего объекта со значениями базы данных.Я предположил, что у вас есть список значений разделенных запятыми для ProfessorIds в вашей таблице базы данных.Кроме того, предполагается, что тип данных столбца ProfessorIds - VARCHAR.

    String query = "SELECT moduleId, moduleCode, module, professorIds from Course";
    PreparedStatement ps = null;
    Connection conn = null;
    ResultSet rs = null;

    // initialize the conn variable before execute the query
    // use a try block to handle exceptions properly

    ps = conn.prepareStatement(query);

    rs = ps.executeQuery();

    List<Course> courseList = new ArrayList<Course>();

    while (rs.next()) {

        Course course = null;

        List<String> professorIdsStrList = Arrays.asList(rs.getString("professorIds").split("\\s*,\\s*"));
        List<Integer> professorIdsIntList = professorIdsStrList.stream()
                         .map(s -> Integer.parseInt(s))
                         .collect(Collectors.toList());

        course = new Course(rs.getInt("moduleId"), rs.getString("moduleCode"), rs.getString("module"), professorIdsIntList);

        courseList.add(course);

    }

Вы можете использовать свой метод следующим образом для добавления модулей.

// use this method call inside the database records reading method
addModule(rs.getInt("moduleId"), rs.getString("moduleCode"), rs.getString("module"), professorIdsIntList));

public void addModule(int moduleId, String moduleCode, String module, List<Integer> professorIds) { 
    this.modules.put(moduleId, new Module(moduleId, moduleCode, module, professorIds)); 
}

Надеюсь, это поможет вам !!!

Используйте следующее для обновления модулей в TimeTable.

int index = 1;
while (rs.next()) {
    ...

    timetable.modules.put(index, module);
    index++;

    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...