การใช้งาน MyBatis อ่านข้อมูลโครงสร้างต้นไม้อย่างละเอียดดังนี้:
โครงสร้างตาราง
สร้างตาราง `lscrm_function_privilege` (` id` int (10) ที่ไม่ได้ลงนามไม่ได้เป็น null auto_increment ความคิดเห็น 'หมายเลข', `create_id` varchar (30) ไม่ใช่ค่าเริ่มต้น 'sys',` update_id` varchar (30) ไม่ใช่ null default current_timestamp update current_timestamp ความคิดเห็น 'เวลาการปรับเปลี่ยน', `ความถูกต้อง 'tinyint (3) ไม่ได้ลงนามไม่ได้ค่าเริ่มต้น' 1 'ความคิดเห็น' ความถูกต้อง 1. ถูกต้อง 0. ไม่ถูกต้อง ',` รหัส' varchar (50) null default '' comment '') ไม่ใช่ค่าเริ่มต้น '0' ความคิดเห็น 'โหนดพาเรนต์', `is_leaf_node` TinyInt (3) ไม่ได้ลงนามเป็นค่าเริ่มต้น '1' ความคิดเห็น 'คือโหนดใบไม้ (โหนดใบไม้เป็นโหนดที่มีระดับ 0 ซึ่งเป็นโหนดที่ไม่มีการตั้งค่าไม่ ค่าเริ่มต้น '0' ความคิดเห็น 'ระบบย่อย', `is_hidden` TinyInt (3) ไม่ได้ลงนามไม่เป็นค่าเริ่มต้น '0' ความคิดเห็น 'UI ซ่อนอยู่หรือไม่? ไม่แสดงบน ui ', คีย์หลัก (`id`)) engine = innoDB auto_increment = 22 charset เริ่มต้น = utf8 comment =' รหัสย่อยสร้าง /r /n ตามรหัสหลักเช่น: customer.add ';
สร้างข้อมูล
แทรกเข้าไปในค่า `lscrm_function_privilege` ('1', 'sys', 'sys', '2016-09-07 15:20:40', '2016-09-07 15:21:17', '1', 'การจัดการการอนุญาต' `lscrm_function_privilege` ค่า ('2', 'sys', 'sys', '2016-09-07 15:21:12', '2016-09-07 15:21:40', '1', 'web.permission.user-mgmt' `lscrm_function_privilege` ค่า ('3', 'sys', 'sys', '2016-09-07 15:22:16', '2016-09-07 15:22:35', '1', 'web.permission.user-mgmt. `lscrm_function_privilege` ค่า ('4', 'sys', 'sys', '2016-09-07 15:23:17', '2016-09-07 15:23:17', '1', '1' '1' '1' `lscrm_function_privilege` ค่า ('5', 'sys', 'sys', '2016-09-07 16:10:37', '2016-09-07 16:10:42', '1', 'แอป. `lscrm_function_privilege` ค่า ('6', 'sys', 'sys', 'sys', '2016-09-07 16:11:06', '2016-09-07 16:11:20', '1' 'lscrm_function_privilege` ค่า (' 7 ',' sys ',' sys ',' 2016-09-07 16:11:06 ',' 2016-09-07 16:11:20 ',' 1 ',' app.customer.modify ',' 5 ' ('8', 'sys', 'sys', '2016-09-07 16:12:33', '2016-09-07 16:14:10', '1', 'app.customer.viewdetail', 'ดูรายละเอียดของลูกค้า', '5', '1', '2' 'sys', 'sys', '2016-09-07 16:12:33', '2016-09-07 16:12:33', '1', 'app.customer.addvisit', 'เพิ่มการเยี่ยมชม', '5', '1', '2', '0') 'sys', '2016-09-07 16:13:59', '2016-09-07 16:14:17', '1', 'app.customer.viewdemand', 'ดูข้อกำหนดการจัดหาลูกค้า', '5', '1', '2', '0'); 'sys', '2016-09-07 16:13:59', '2016-09-07 16:14:17', '1', 'app.customer.vieworder', 'ดูคำสั่งซื้อของลูกค้า', '5', '1', '2', '0'); '2016-09-07 16:13:59', '2016-09-07 16:14:17', '1', 'app.customer.viewshop', 'ดูคำสั่งซื้อลูกค้า', '5', '1', '2', '0'); '2016-09-07 16:17:28', '2016-09-07 16:18:39', '1', 'app.customer.viewreply', 'ดูรายการคำสั่งซื้อ', '5', '1', '2', '0'); '2016-09-07 16:19:32', '2016-09-07 16:23:51', '1', 'app.customer.fastopenshop', 'การเปิดร้านค้าด่วน', '5', '1', '2', '0'); '2016-09-07 16:22:33', '2016-09-07 16:22:33', '1', 'app.demand', 'การจัดการความต้องการ', '0', '0', '2', '0'); 16:23:21 ',' 2016-09-07 16:23:21 ',' 1 ',' app.demand.Private ',' ความต้องการทะเลส่วนตัว ',' 15 ',' 1 ',' 1 ',' 2 ',' 0 '); 16:23:58 ',' 2016-09-07 16:23:58 ',' 1 ',' app.demand.feedback ',' หน้าคำติชม ',' 15 ',' 1 ',' 2 ',' 0 '); '1', 'app.demand.pushsearch', 'ดึงผู้ขายค้นหา', '15', '1', '2', '0'); แทรกลงใน '1', '1', '1', '1', '1', '1' '1' '1' '1' '1' '1'); แทรกลงใน `lscrm_function_privilege` ค่า ('21', '1', '1', '1', '1', '1', '1', '1', '1', '1' '1' '1' '1' '1' '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1' '1' '1' '1' '1' '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1' 'ดูข้อมูลประสิทธิภาพ', '20', '1', '2', '0');Entity Bean
แพ็คเกจ com.lianshang.crm.biz.entity; นำเข้า com.google.common.base.moreObjects; นำเข้า java.util.arraylist; นำเข้า java.util.date; นำเข้า java.util.list; วันที่ createTime;/** เวลาการปรับเปลี่ยน **/วันที่ส่วนตัว updateTime = วันที่ใหม่ ();/** ความถูกต้อง 1.Valid 0. ไม่ถูกต้อง **/ความถูกต้อง int ส่วนตัว = 1;/** การเข้ารหัส **/รหัสสตริงส่วนตัว; โหนด) เมื่อเพิ่มโหนดเด็กต้องตั้งค่า parent_id is_leaf_node เป็น 0 **/int private int isleafnode;/** ระบบย่อยในเครือ **/ระบบย่อย int ส่วนตัว;/** เป็น UI ที่ซ่อนอยู่หรือไม่? มันไม่ได้แสดงบน UI **/ส่วนตัว int ishidden = 1; รายการส่วนตัว <lscrmfunctionprivilegeentity> privileGelist = new ArrayList <> (); // get ()/set () - - } แพ็คเกจ com.lianshang.crm.biz.entity; นำเข้า java.util.arraylist; นำเข้า java.util.date; นำเข้า java.util.list;/*** สร้างขึ้นโดย Zhenyu ในปี 2016/9/8.*/คลาสสาธารณะ เวลา **/วันที่ส่วนตัว updateTime = วันที่ใหม่ ();/** ความถูกต้อง 1.Valid 0. ไม่ถูกต้อง **/ความถูกต้อง int ส่วนตัว = 1;/** การเข้ารหัส **/รหัสสตริงส่วนตัว;/** ชื่อ **/ฟังก์ชั่นสตริงส่วนตัว เมื่อเพิ่มโหนดเด็กต้องตั้งค่า parent_id is_leaf_node เป็น 0 **/int private int isleafnode;/** ระบบย่อยในเครือ **/ระบบย่อย int ส่วนตัว;/** เป็น UI ที่ซ่อนอยู่หรือไม่? มันไม่ได้แสดงบน UI **/ส่วนตัว int ishidden = 1; รายการส่วนตัว <lscrmfunctionprivilegeentity> privileGelist = new ArrayList <> ();};
การกำหนดค่าแผนที่
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <! doctype mapper สาธารณะ "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" namespace = "com.lianshang.crm.biz.dao.lscrmfunctionprivilegedao"> <cacheeviction = "fifo" flushinterval = "60000" ขนาด = "1024" readonly = "true"/> property = "id" column = "id"/> <result property = "createId" คอลัมน์ = "create_id"/> <property result = "updateId" คอลัมน์ = "update_id"/> <property result = "createTime" คอลัมน์ = "create_time"/> <property = "updateTime" column = "function_name"/> <result property = "parentid" คอลัมน์ = "parent_id"/> <result property = "isleafnode" คอลัมน์ = "is_leaf_node"/> <property result = "subsystemid" คอลัมน์ = "sub_system_id"/> property = "subprivilegesResult" type = "lscrmfunctionprivilegeentity" ขยาย = "lscrmfunctionprivilegilegeresult"> <property collection = "privilegelist" javatype = "java.Util.ArrayList" คอลัมน์ = "id" select = "selectsubprivileges"> </collection> </resultmap> <resultmap id = "lscrmfunctionprivilegetreeresult" type = "lscrmfunctionprivilegetree" ขยาย = "subprivilegesResult"> <! resultmap = "lscrmfunctionprivilegilegeresult"/>-> <property collection = "privilegelist" javatype = "java.util.arraylist" คอลัมน์ = "id" ของ tetype = "lscrmfunctionprivilegeentity id = "tbl_name"> lscrm_function_privilege </sql> <sql id = "role_privilege_tbl_name"> lscrm_role_privilege </sql> <sql id = "select_sql" is_leaf_node, sub_system_id, is_hidden จาก <รวม refid = "tbl_name"/> </sql> <select id = "readAllPrivileges" resultmap = "lscrmfunctionprivilegetreeresult" usecache = "true"> <รวม refid = "select_sql sub_system_id = #{subsystemid} </if> </select> <select id = "selectsubprivileges" resultmap = "subprivilegesResult"> <รวม refid = "select_sql"/> ที่ parent_id = #{id} com.lianshang.crm.api.dto.lscrmfunctionprivilege นำเข้า com.lianshang.crm.biz.entity.lscrmfunctionprivilegeentity นำเข้า com.lianshang.crm.biz.entity.lscrmfunctionprivilegetree; LSCRMFUNCTIONPRIVILEGEDAO {รายการ <lSCRMFUNCTIONPRIVILEGETREE> ReadAllPrivileges (@Param ("SubsystemId") Int SubsystemId);}บริการ
แพ็คเกจ com.lianshang.crm.biz.service.impl; นำเข้า com.alibaba.fastjson.json; นำเข้า com.google.common.base.function; นำเข้า com.lianshang.common.utils.general.generalresult; com.lianshang.common.utils.general.stringutil; นำเข้า com.lianshang.crm.api.dto.lscrmfunctionprivilege; นำเข้า com.lianshang.crm.api.service.lscrmfunctionprivilegeservice; com.lianshang.crm.biz.entity.lscrmfunctionprivilegeentity; นำเข้า com.lianshang.crm.biz.entity.lscrmfunctionprivilegetree นำเข้า org.springframework.beans.factory.annotation java.util.list; นำเข้า com.google.common.collect.fluentiterable. จาก; คลาสสาธารณะ lscrmfunctionprivilegeserviceimpl ใช้ lscrmfunctionprivilegeservice GeneralResult <String> readAllPrivileges (int subsystemId) {รายการ <lscrmfunctionprivilegetRee> PrivileGetrees = lscrmfunctionprivilegedao.readallprivileges (subsystemid); ส่งคืน GeneralResult ใหม่ <> (json.tojsonstringผลตอบแทน
[{"รหัส": "web.permission", "createId": "sys", "createTime": 1473232840000, "functionName": "การจัดการสิทธิ์", "ซ่อน": 0, "ID": 1, "lefnode": 0, "parentid": 0, "Privilegelist" "sys", "createTime": 1473232872000, "functionName": "การจัดการผู้ใช้", "ซ่อน": 0, "id": 2, "leafnode": 0, "parentid": 1, "Privilegelist": [{code ":" web.permission-mgmt.add " 1473232936000, "functionName": "ผู้ใช้ใหม่", "ซ่อน": 0, "id": 3, "leafnode": 1, "parentid": 2, "PrivileGelist": [], "Subsystemid": 1, "UpdateId": "Sys" "web.permission.user-mgmt.modify", "createid": "sys", "createTime": 1473232997000, "functionName": "Modify User", "Hidden": 0, "ID": 4, "leafnode": 1, "Parentid": 2, "Privilegelist": "Sys", "updateTime": 1473232997000, "ความถูกต้อง": 1}], "SubsystemId": 1, "UpdateId": "Sys", "updateTime": 1473232900000, "ความถูกต้อง": 1}] 1473232877000, "ความถูกต้อง": 1}] ข้างต้นเป็นรหัสตัวอย่างสำหรับการใช้งานข้อมูลโครงสร้างต้นไม้การอ่าน MyBatis ที่แนะนำให้คุณรู้จัก ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!