国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - MyBatis之自查詢使用遞歸實現 N級聯動效果(兩種實現方式)

MyBatis之自查詢使用遞歸實現 N級聯動效果(兩種實現方式)

2020-12-01 14:36啷個哩個啷 Java教程

這篇文章主要介紹了MyBatis之自查詢使用遞歸實現 N級聯動效果,本文給大家分享兩種實現方式,需要的的朋友參考下吧

A:首先先看下一個簡單的面試題

斐波那契數列

計算數組{1,1,2,3,5,8.......} 第30位值

規律:1 1 從第三項開始,每一項都是前兩項之和

    有兩種實現方式

 第一種方式:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class TestOne {
 public int TestSelf(int n){
  if(n<0){
   throw new IllegalArgumentException("n不能為負數");
  }else if(n<=2){
   return 1;
  }else{
   return TestSelf(n-2)+TestSelf(n-1);
  }
 }
 @Test
 public void Test(){
  System.out.println(TestSelf(30));
 }
}

打印結果832040

第二種方式:利用數組

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public int TestSelfTwo(int n){
  if(n<0){
   throw new IllegalArgumentException("n不能為負數");
  }else if(n<=1){ //遞歸前兩個數 不管n是多少 為一
   return 1;
  }
  int[] nums = new int[n+1]; //30位從零開始
  nums[0]=1;
  nums[1]=1;
  for (int i =2;i<n;i++){
   nums[i] = nums[i-2]+nums[i-1];
  }
  return nums[n-1];
 }
 @Test
 public void Test(){
  System.out.println(TestSelfTwo(30));
 }

公式:f(n) = f(n-2)+f(n-1)   f代表方法 n代表多少 位

B:在MyBatis中利用遞歸實現n級聯動

MyBatis之自查詢使用遞歸實現 N級聯動效果(兩種實現方式)

?
1
2
sql語句:select * from type where pid = 0;  首次指定pid值為0,然后下次根據pid為0的cid 作為下次查詢的pid
  public List<Category> getCategory(Integer pid); //接口層方法

映射文件配置

?
1
2
3
4
5
6
7
8
9
10
11
<mapper namespace="dao.CateGoryDao">
 <resultMap id="getSelf" type="entity.Category">
   <id column="cid" property="cid"></id>
   <result column="cname" property="cName"></result>
   <collection property="categorySet" select="getCategory" column="cid"></collection> //這里可以不用指定oftype 使用反向查詢select從另一個maper文件中取出數據時必須用ofType
   <!--查到的cid作為下次的pid-->
 </resultMap>
 <select id="getCategory" resultMap="getSelf" >
  select * from category where pid=#{pid}
 </select>
</mapper>

mybatis的javaType和ofType 

都是指定對象的類型 不同的是當使用反向查詢select從另一個maper文件中取出數據時必須用ofType

都可以為collection和association是指定對象的類型,

都不是必須寫的, 只有反向select時需要ofType;

實體類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package entity;
import java.util.HashSet;
import java.util.Set;
/**
 * Created by zhangyu on 2017/7/12.
 */
public class Category {
 private Integer cid;
 private String cName;
 private Integer pid;
 private Set<Category> categorySet = new HashSet<Category>();
 @Override
 public String toString() {
  return "Category{" +
    "cid=" + cid +
    ", cName='" + cName + '\'' +
    ", pid=" + pid +
    ", categorySet=" + categorySet +
    '}';
 }
 public Integer getCid() {
  return cid;
 }
 public void setCid(Integer cid) {
  this.cid = cid;
 }
 public String getcName() {
  return cName;
 }
 public void setcName(String cName) {
  this.cName = cName;
 }
 public Integer getPid() {
  return pid;
 }
 public void setPid(Integer pid) {
  this.pid = pid;
 }
 public Set<Category> getCategorySet() {
  return categorySet;
 }
 public void setCategorySet(Set<Category> categorySet) {
  this.categorySet = categorySet;
 }
}

測試類:

?
1
2
3
4
5
6
7
8
9
//測試自連接
@Test
public void TestSelf(){
 CateGoryDao dao = MyBatis.getSessionTwo().getMapper(CateGoryDao.class);
 List<Category> list = dao.getCategory(0);
 for (Category item:list ) {
  System.out.println(item);
 }
}

打印結果:

?
1
2
Category{cid=1, cName='圖書', pid=0, categorySet=[Category{cid=5, cName='期刊報紙', pid=1, categorySet=[]}, Category{cid=3, cName='青年圖書', pid=1, categorySet=[Category{cid=6, cName='讀者', pid=3, categorySet=[Category{cid=7, cName='12月份', pid=6, categorySet=[]}]}]}, Category{cid=4, cName='少兒圖書', pid=1, categorySet=[]}]}
Category{cid=2, cName='服裝', pid=0, categorySet=[]}

以上所述是小編給大家介紹的MyBatis之自查詢使用遞歸實現 N級聯動效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://www.cnblogs.com/zhangyu0217----/archive/2017/07/12/7155219.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产在线观看一区 | 男人天堂网av | 91免费观看视频 | 午夜av影院 | 99爱精品在线 | 午夜在线视频播放 | 日本一区二区高清视频 | 久久久久久精 | 国产精品尤物麻豆一区二区三区 | 日韩在线观看中文字幕 | 一级片视频在线观看 | 性做久久久 | 成人高清网站 | 欧美一二三 | 一级大片一级一大片 | 免费观看一级特黄欧美大片 | 欧美视频中文字幕 | 91电影在线观看 | 久草天堂| 国产美女一区二区三区 | 国产精品美乳在线观看 | 国产精品激情 | 日本乱码视频 | 最近2019年好看中文字幕视频 | 国产免费高清 | 黑人中文字幕一区二区三区 | 欧美日韩在线观看一区二区 | 国产一二在线 | 亚洲成av人片在线观看无 | 99精品国产一区二区三区 | 黄色免费在线看 | 超碰在线99| 亚洲 欧美 另类 综合 偷拍 | 国产成人精品久久二区二区 | 成人免费网站在线观看 | 国产视频综合在线 | 中文字幕第七页 | 在线第一页 | 国产视频黄在线观看 | 日韩电影免费在线观看中文字幕 | 欧美日韩一区二区在线播放 |