Mybatis+Mysql&Oracle再帰クエリー
プリアンブル:メニューなどの再帰クエリーによく使用されます.一般的にはztreeでメニューを実装しますが、データクエリーでは再帰文が必要です.
1、建表:
create table menu{
menu_Id varchar(31),
menu_name varchar(31),
menu_level char(1),
parent_Id varchar(31)
}
2、JavaBeanを建てる
package org.gtiles.components.courseinfo.unit.dao;
import java.util.ArrayList;
import java.util.List;
/**
* @ClassName Menu
* @Description: TODO( )
* @author huguangjun
* @date 2016 6 28 7:52:41
*/
public class Menu {
public String menuId;
public String menuName;
public String menuLevel;
public String parentId;
public List
3、orcleの再帰クエリ文
select t.id AS menuid,t.menu_name AS menuName,t.Parent_Id AS paterId from aut_menu_t t
where 1=1 START WITH t.menu_id='root' connect by t.Parent_Id= PRIOR t.menu_id
4、mybatis+mysql再帰クエリーを実現
Javaプログラムでデータを再カプセル化しないようにmybatis xmlファイルにデータをカプセル化
5、ページ上でデータを読み取る場合、ここではfreemarkerを列子とする
${menu.menuName}
${menuChild.menuName}
以上はデータベースレベルで処理したが,高同時性では効率が低い.javaを使用してメモリでの処理も可能