다음은 각 폴더의 이름, ID 및 상위 ID가있는 데이터베이스 항목에서 로컬 폴더를 만들기위한 클래스입니다. 내가 할 수있는 한 최선을 다하고 있지만 끝내기에 충분하지는 않습니다.'데이터베이스에서 폴더 만들기'클래스
"그냥 id 0을 가진 폴더를 잡고 디스크에 파일을 작성하기 시작했습니다. folder.getChildren()을 사용하여 트리를 아래로 이동하는 편리한 방법으로 사용하십시오." 다른 게시물이지만 어떻게하고 어디에서해야하는지 이해하지 못합니다. 도와주세요
public class Loop {
public static void main(String[] args) {
int PID = 0;
int RepoID = 1;
Connection con = null;
String url = "jdbc:mysql://localhost/document_manager";
String user = "root";
String password = "Pa55w0rd";
try {
con = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
Map<Integer,Folder> data = new HashMap<Integer,Folder>();
while(PID < 50)
{
try {
Statement st = con.createStatement();
ResultSet result = st.executeQuery("SELECT name, category_id, parent_id FROM categories WHERE parent_id = '"+PID+"' AND repository_id = '"+RepoID+"'");
while (result.next())
{
String FolderName = result.getString ("name");
String FolderId = result.getString ("category_id");
String ParentId = result.getString ("parent_id");
int intFolderId = Integer.parseInt(FolderId);
int intParentId = Integer.parseInt(ParentId);
System.out.println(FolderId+" "+FolderName+" "+ParentId);
//intFolderId = Integer.valueOf(FolderId);
//intParentId = Integer.valueOf(FolderId);
Folder newFolder = new Folder(FolderName, intFolderId, intParentId);
data.put(newFolder.getId(), newFolder);
}
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
PID++;
}
for(Folder folder : data.values()) {
int parentId = folder.getParentFolderId();
Folder parentFolder = data.get(parentId);
if(parentFolder != null)
parentFolder.addChildFolder(folder);
}
}
}
문제는 개체를 선택하는 방법을 알지 못합니다 ('0'ID를 가진 개체, 내가 자식과 mkDirs를 모든 자식에게 추가 할 수있는 경우) .. – WookooUK
@ user961574 문제를 이해할 수 있는지 모르겠지만'SELECT ... FROM categories where parent_id IS NULL ...'(아니면'... WHERE parent_id = 0 ...')? – Thomas
때문에 그것은 이미 완료되었습니다. 데이터베이스의 모든 결과가 객체로 만들어졌으며 올바른 순서로 연결되어 있습니다. 객체의 ID가 0 인 객체를 선택하고 자식을 가져오고 디렉토리를 생성 할 수 있어야합니다. – WookooUK