0
以下は、各フォルダに名前、ID、および親IDがあるデータベースエントリからローカルフォルダを作成するためのクラスです。 私はできる限り最善の方法でそれをまとめましたが、それを終了するのに十分なことは分かりません。 「木を下に移動する便利な方法としてだけでIDが0でフォルダをつかむとfolder.getChildrenを(使用して、ディスク上のファイルの作成を開始)そしてちょうどmkdirs()」「データベースからフォルダを作る」クラス
私はする必要がに私に語ったとして別の投稿がありますが、どうやってやるのか分かりません。
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