Я могу отображать данные из базы данных в древовидной структуре, используя свойство echart, но теперь мне нужно динамически отображать изображение на каждом узле дерева из базы данных.
В таблицах есть дочерние и родительские отношенияизображение хранится в базе данных.Я пытаюсь просмотреть данные в соответствии с родительскими дочерними данными, но мне не удалось это сделать.
Код загрузки Java Spring
@GetMapping("treeBuild2")
public List < UserParentId > tree() {
List < UserParentId > tree = new ArrayList < > ();
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://192.168.1.30:3306/db_mlm", "root", "root");
Statement stmt = con.createStatement();
String call = ("{call gettree(1)}");
CallableStatement stmt1 = con.prepareCall(call);
stmt1.execute();
ResultSet rs = stmt1.getResultSet();
System.out.println("call->" + call);
while (rs.next()) {
UserParentId up = new UserParentId();
up.setId(rs.getInt("id"));
up.setParent_id(rs.getInt("parent_id1"));
up.setName(rs.getString("FirstName"));
up.setLvl(rs.getInt("lvl"));
tree.add(up);
}
// gettree method
@GetMapping("tree")
public List < client > getTree() {
List < client > myList = new ArrayList < > ();
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://192.168.2.15:3306/sonoo", "root", "root");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from Category");
while (rs.next()) {
client c = new client();
c.setTreeId(rs.getInt(1));
c.setTreeName(rs.getString(2));
c.setPerentId(rs.getInt(3));
myList.add(c);
System.out.println(rs.getInt(1));
System.out.println(rs.getString(2));
}
con.close();
} catch (Exception e) {
System.out.println(e);
}
System.out.println(myList);
for (int i = 1; i <= myList.size(); i++) {
System.out.println();
}
return myList;
}
con.close();
} catch (Exception e) {
System.out.println(e);
}
System.out.println(tree.toString());
return tree;
}
Я попытался использовать загрузку Spring в бэкэнде, связанном с базой данных MYSQL.
Угловой код внешнего интерфейса.
this._httpClient.get(this.baseurl+"treeBuild2").subscribe(
(res:any) => {
if(res){
this.list = res;
console.log(res);
this.r = this.convert(this.list);
this.jsonArray = JSON.parse(JSON.stringify(this.r));
this.str = JSON.stringify(this.r);
console.log(this.jsonArray);
})
//called convert function on data
convert(array):any{
var map = {};
for(var i = 0; i < array.length; i++){
var obj = array[i];
obj.children= [];
map[obj.id] = obj;
var parent = obj.parent_id || '-';
if(!map[parent]){
map[parent] = {
children: []
};
}
map[parent].children.push(obj);
}
return map['-'].children;
}