gpt4 book ai didi

java - 使用数据库创建新对象

转载 作者:行者123 更新时间:2023-11-29 16:10:44 24 4
gpt4 key购买 nike

我想使用我的数据库来执行 addmodule 函数,但它必须处于循环中,而不仅仅是 1 个模块,我希望它添加数据库中的所有数据以创建 addModule 函数。我的数据库有相关信息,但我不知道如何将其放入 addmodule 函数来创建新对象(模块)

timetable.addModule(1, "cs1", "Computer Science", new int[] {1, 2});

这是我的 addModule:

public void addModule(int moduleId, String moduleCode, String module, int professorIds[]) { this.modules.put(moduleId, new Module(moduleId, moduleCode, module, professorIds)); }

使用数据库添加模块的准备语句是什么?但对于数组,所以将其全部添加

最佳答案

您可以创建一个模型类来存储数据库记录。

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));
}

希望这对你有帮助!

使用以下命令更新时间表中的模块。

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

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

...
}

关于java - 使用数据库创建新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55280320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com