Im tatsächlichen Entwicklungsprozess ist es häufig erforderlich, den Knotenbaum abzufragen und die Liste der untergeordneten Knoten basierend auf dem angegebenen Knoten abzurufen Der Baum ist für den Notfall unten aufgeführt.
kann für Datenstrukturen mit hierarchischen Beziehungen wie Systemabteilungsorganisationen, Produktklassifizierungen, Stadtbeziehungen usw. verwendet werden; #🎜 🎜#Designidee
name | parent_code# 🎜🎜##🎜 🎜 # | 1 | |
---|---|---|---|
# 🎜🎜# 0 | # 🎜🎜#2 | 20000 | 手机 |
10002 | HP. NOTEBOOK | 10000 | #🎜🎜 ##🎜🎜 #5#🎜 🎜# |
Lenovo #🎜🎜 ##🎜 🎜# 1000102 | Lenovo Xiaoxin-Serie | 10001 | |
Tabellenstruktur | CREATE TABLE `tree_table` ( `id` int NOT NULL AUTO_INCREMENT COMMENT "主键ID", `code` varchar(10) NOT NULL COMMENT "编码", `name` varchar(20) NOT NULL COMMENT "名称", `parent_code` varchar(10) NOT NULL COMMENT "父级编码", PRIMARY KEY (`id`) USING BTREE ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT="树形结构测试表"; Nach dem Login kopieren | TabellendatenEntity | #🎜 🎜#|
mapper | xml | <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.springboot.example.mysqltree.mapper.TreeTableMapper"> <resultMap id="BaseResultMap" type="com.springboot.example.mysqltree.model.entity.TreeTable"> <result column="id" property="id"/> <result column="code" property="code"/> <result column="name" property="name"/> <result column="parent_code" property="parentCode"/> </resultMap> <resultMap id="NodeTreeResult" type="com.springboot.example.mysqltree.model.entity.TreeTable" extends="BaseResultMap"> <collection property="childNode" column="code" ofType="com.springboot.example.mysqltree.model.entity.TreeTable" javaType="java.util.ArrayList" select="nextNoteTree"> </collection> </resultMap> <sql id="Base_Column_List"> id, code, `name`, parent_code </sql> <select id="nextNoteTree" resultMap="NodeTreeResult"> select <include refid="Base_Column_List"/> from tree_table where parent_code=#[code] </select> <select id="noteTree" resultMap="NodeTreeResult"> select <include refid="Base_Column_List"/> from tree_table where parent_code="0" </select> </mapper> Nach dem Login kopieren | #🎜 🎜## 🎜🎜 #noteTree: Alle übergeordneten Knotendaten abrufen; |
nextNoteTree: Schleife, um untergeordnete Knotendaten abzurufen, bis der Blattknoten endet; 🎜🎜## 🎜🎜#Spalte: Der Spaltenname der zugehörigen Tabelle; 🎜🎜# | Wenn Sie Mapper-XML bei Verwendung von mybatis nicht laden können, muss die folgende Konfiguration zu pom.xml hinzugefügt werden:@Slf4j @Component public class TreeTableCommandLineRunner implements CommandLineRunner { @Resource private TreeTableMapper treeTableMapper; @Override public void run(String... args) throws Exception { log.info(JSONUtil.toJsonPrettyStr(treeTableMapper.noteTree())); } } Nach dem Login kopieren |
Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine Baumstrukturabfrage mit Springboot + Mybatis Plus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!