中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

武漢微信網(wǎng)站建設(shè)網(wǎng)站seo推廣員招聘

武漢微信網(wǎng)站建設(shè),網(wǎng)站seo推廣員招聘,注冊(cè)網(wǎng)站獲取網(wǎng)易郵箱安全碼,那個(gè)網(wǎng)站專(zhuān)門(mén)做二手衣服目錄 1、使用VO聚合對(duì)象(可以解決這兩種情況) 多對(duì)一: 一對(duì)多: 2、非聚合的多對(duì)一做法: 3、非聚合的一對(duì)多做法: 1、使用VO聚合對(duì)象(可以解決這兩種情況) 當(dāng)我需要多對(duì)一、一對(duì)…

目錄

1、使用VO聚合對(duì)象(可以解決這兩種情況)

多對(duì)一:

一對(duì)多:

2、非聚合的多對(duì)一做法:

3、非聚合的一對(duì)多做法:


1、使用VO聚合對(duì)象(可以解決這兩種情況)

當(dāng)我需要多對(duì)一、一對(duì)多時(shí),可以創(chuàng)建VO聚合對(duì)象。

例如:學(xué)生類(lèi)和老師類(lèi),會(huì)出現(xiàn)多對(duì)一、一對(duì)多的情況。此時(shí)創(chuàng)建一個(gè)聚合類(lèi),里面包含所需要的學(xué)生類(lèi)和老師類(lèi)的屬性。并先查詢出前面的內(nèi)容,再根據(jù)前面的內(nèi)容查詢出后面的內(nèi)容。

多對(duì)一:

數(shù)據(jù)庫(kù)設(shè)計(jì),學(xué)生表中有一個(gè)tid來(lái)匹配老師id:

?

在學(xué)生類(lèi)和老師類(lèi)后,再創(chuàng)建出一個(gè)聚合類(lèi):

@Data
public class Student {private Integer id;private String username;private Integer tid;
}
@Data
public class Teacher {private Integer id;private String username;
}
@Data
public class StudentAndTeacher {private Integer id;private String username;private Teacher teacher;
}

寫(xiě)出查詢所有學(xué)生和根據(jù)學(xué)生類(lèi)里的tid查詢老師:?

@Mapper
public interface AllMapper {List<Student> AllStudent();Teacher AllTeacherByTid(Integer tid);
}
    <select id="AllStudent" resultType="com.example.demo.entity.Student">select * from student;</select><select id="AllTeacherByTid" resultType="com.example.demo.entity.Teacher">select * from teacher where id=#{tid};</select>

通過(guò)聚合類(lèi),把這兩個(gè)查詢到的內(nèi)容聚合到一起:

    @Testpublic void AllStudent() {List<Student> students = allMapper.AllStudent();for (Student student : students) {StudentAndTeacher studentAndTeacher = new StudentAndTeacher();studentAndTeacher.setId(student.getId());studentAndTeacher.setUsername(student.getUsername());studentAndTeacher.setTeacher(allMapper.AllTeacherByTid(student.getTid()));System.out.println(studentAndTeacher);}}

結(jié)果如下:

一對(duì)多:

學(xué)生類(lèi)和老師類(lèi)一樣,但是聚合類(lèi)不一樣,因?yàn)楝F(xiàn)在的主體是老師,而不是學(xué)生。

@Data
public class Student {private Integer id;private String username;private Integer tid;
}
@Data
public class Teacher {private Integer id;private String username;
}
@Data
public class TeacherAndStudent {private Integer id;private String username;private List<Student> studentList;
}

寫(xiě)出查詢所有老師和根據(jù)老師的id去學(xué)生表里查對(duì)應(yīng)tid的學(xué)生:?

@Mapper
public interface AllMapper {List<Teacher> AllTeacher();List<Student> AllStudentById(Integer id);
}
    <select id="AllTeacher" resultType="com.example.demo.entity.Teacher">select * from teacher;</select><select id="AllStudentById" resultType="com.example.demo.entity.Student">select * from student where tid=#{id};</select>

通過(guò)聚合類(lèi),把這兩個(gè)查詢到的內(nèi)容聚合到一起:

    @Testpublic void AllTeacher() {List<Teacher> Teachers = allMapper.AllTeacher();for (Teacher teacher : Teachers) {List<Student> students = allMapper.AllStudentById(teacher.getId());TeacherAndStudent studentAndTeacher = new TeacherAndStudent();studentAndTeacher.setId(teacher.getId());studentAndTeacher.setUsername(teacher.getUsername());studentAndTeacher.setStudentList(students);System.out.println(studentAndTeacher);}}

結(jié)果如下:

2、非聚合的多對(duì)一做法:

知識(shí)點(diǎn):association標(biāo)簽是用在多對(duì)一時(shí),當(dāng)一個(gè)類(lèi)中有其他類(lèi)作為該類(lèi)的屬性時(shí),要用到這個(gè)標(biāo)簽。

此時(shí)的Student類(lèi)中有一個(gè)屬性是Teacher類(lèi):

@Data
public class Student {private Integer id;private String username;private Teacher teacher;
}
@Data
public class Teacher {private Integer id;private String username;
}
@Mapper
public interface AllMapper {List<Student> AllStudent();
}

這里用resultMap來(lái)匹配。?

要注意兩點(diǎn):

1、result 標(biāo)簽里的property對(duì)應(yīng)的是java類(lèi)的屬性名,column對(duì)應(yīng)的是select 標(biāo)簽里查詢出來(lái)的字段名。并且要注意,若多個(gè)表的字段名相同,必須要用別名區(qū)分,并在column中寫(xiě)上別名而非字段名。

2、association 標(biāo)簽中,property對(duì)應(yīng)的是Student類(lèi)中的teacher屬性,類(lèi)型為Student類(lèi),這里的類(lèi)型用javaType而不是Type。

    <select id="AllStudent" resultMap="StudentAndTeacher">select s.id sid, s.username susername, t.id tid, t.username tusernamefrom student s, teacher twhere s.tid = t.id;</select><resultMap id="StudentAndTeacher" type="com.example.demo.entity.Student"><result property="id" column="sid"></result><result property="username" column="susername"></result><association property="teacher" javaType="com.example.demo.entity.Teacher"><result property="id" column="tid"></result><result property="username" column="tusername"></result></association></resultMap>
 @Testpublic void StudentAndTeacher() {List<Student> students = allMapper.AllStudent();for (Student student : students) {System.out.println(student);}}

結(jié)果如下:

3、非聚合的一對(duì)多做法:

知識(shí)點(diǎn):collection標(biāo)簽是用在一對(duì)多時(shí),當(dāng)一個(gè)類(lèi)中有其他類(lèi)集合作為該類(lèi)的屬性時(shí),要用到這個(gè)標(biāo)簽。

此時(shí)的Teacher類(lèi)中有一個(gè)屬性是List<Student>:

@Data
public class Student {private Integer id;private String username;private Integer tid;
}
@Data
public class Teacher {private Integer id;private String username;private List<Student> students;
}
@Mapper
public interface AllMapper {List<Teacher> AllTeacher();
}

這里用resultMap來(lái)匹配。?

要注意兩點(diǎn):

1、result 標(biāo)簽里的property對(duì)應(yīng)的是java類(lèi)的屬性名,column對(duì)應(yīng)的是select 標(biāo)簽里查詢出來(lái)的字段名。并且要注意,若多個(gè)表的字段名相同,必須要用別名區(qū)分,并在column中寫(xiě)上別名而非字段名。

2、collection標(biāo)簽中,property對(duì)應(yīng)的是Teacher類(lèi)中的students屬性,類(lèi)型為L(zhǎng)ist,這里的類(lèi)型用javaType而不是Type,ofType指的是List的泛型。

    <select id="AllTeacher" resultMap="TeacherAndStudent">select s.id sid, s.username susername, s.tid stid, t.id tid, t.username tusernamefrom student s, teacher twhere s.tid = t.id;</select><resultMap id="TeacherAndStudent" type="com.example.demo.entity.Teacher"><result property="id" column="tid"></result><result property="username" column="tusername"></result><collection property="students" javaType="List"        ofType="com.example.demo.entity.Student"><result property="id" column="sid"></result><result property="username" column="susername"></result><result property="tid" column="stid"></result></collection></resultMap>
    @Testpublic void StudentAndTeacher() {List<Teacher> teachers = allMapper.AllTeacher();for (Teacher teacher : teachers) {System.out.println(teacher);}}

此時(shí)結(jié)果:

http://www.risenshineclean.com/news/23308.html

相關(guān)文章:

  • 如何做商業(yè)推廣網(wǎng)站淘寶搜索排名
  • 做外貿(mào)家紡資料網(wǎng)站重慶店鋪整站優(yōu)化
  • 關(guān)于做花茶網(wǎng)站的策劃書(shū)windows優(yōu)化大師有必要安裝嗎
  • 哈爾濱 微網(wǎng)站設(shè)計(jì)百度站長(zhǎng)工具
  • 政府網(wǎng)站建設(shè)開(kāi)題報(bào)告企業(yè)網(wǎng)站怎么制作
  • 個(gè)人免費(fèi)網(wǎng)站注冊(cè)seo整站優(yōu)化服務(wù)
  • 在線代碼編輯器seo 優(yōu)化案例
  • 音樂(lè)網(wǎng)站開(kāi)發(fā)分享企拓客軟件怎么樣
  • 如何給自己網(wǎng)站做反鏈全國(guó)今日新增疫情
  • 網(wǎng)站制作設(shè)計(jì)方案行業(yè)網(wǎng)站網(wǎng)址
  • 天津外貿(mào)網(wǎng)站建設(shè)阿里云域名注冊(cè)流程
  • 十堰網(wǎng)站建設(shè)公司公司品牌推廣方案范文
  • 托管型網(wǎng)站專(zhuān)業(yè)網(wǎng)絡(luò)推廣公司排名
  • wordpress4.0 中文深圳專(zhuān)業(yè)seo
  • 有哪些做海島的網(wǎng)站seo推廣主要做什么
  • 模板制作方法重慶seo網(wǎng)頁(yè)優(yōu)化
  • 想做一個(gè)自己的網(wǎng)站 怎么做北京谷歌優(yōu)化
  • 網(wǎng)站服務(wù)器提供商北京seo顧問(wèn)推推蛙
  • 圖書(shū)信息管理系統(tǒng)代碼網(wǎng)站建設(shè)seo搜索引擎優(yōu)化哪家好
  • 重慶速代網(wǎng)絡(luò)科技天津seo網(wǎng)絡(luò)營(yíng)銷(xiāo)
  • 淘客的手機(jī)網(wǎng)站怎么做網(wǎng)頁(yè)關(guān)鍵詞優(yōu)化軟件
  • 空中客車(chē)網(wǎng)站建設(shè)需求百度搜索下載app
  • 網(wǎng)站建設(shè)團(tuán)隊(duì)拍照網(wǎng)站權(quán)重查詢接口
  • 威聯(lián)通231p做網(wǎng)站今晚賽事比分預(yù)測(cè)
  • 九江建設(shè)監(jiān)督網(wǎng)站國(guó)外友鏈買(mǎi)賣(mài)平臺(tái)
  • 專(zhuān)業(yè)網(wǎng)站建設(shè)知識(shí)免費(fèi)seo快速收錄工具
  • 公司做網(wǎng)站哪里做南京seo優(yōu)化
  • 網(wǎng)站建設(shè)服務(wù)流程企業(yè)推廣方案
  • 具有價(jià)值的常州做網(wǎng)站安卓aso優(yōu)化工具
  • 紅星美凱龍建設(shè)事業(yè)中心網(wǎng)站網(wǎng)站免費(fèi)高清素材軟件