日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Mybatis中多個對象包含同一個對象的處理操作

瀏覽:183日期:2023-10-19 08:51:21
多個對象對應一個對象時,應該如何進行查詢?

例如

關鍵字:association : 聯系 ,關聯 多個人可以關聯一個人。

首先做一些準備,如:實體類,工具類和Mybatis核心文件

實體類:

//老師實體類package com.MLXH.pojo;public class Teacher { private int id; private String name; public Teacher() { } public Teacher(int id, String name) {this.id = id;this.name = name; } public int getId() {return id; } public void setId(int id) {this.id = id; } public String getName() {return name; } public void setName(String name) {this.name = name; } @Override public String toString() {return 'Teacher{' +'id=' + id +', name=’' + name + ’’’ +’}’; }}

//學生實體類package com.MLXH.pojo;public class Student { private int id; private String name; private Teacher teacher; public Student() { } public Student(int id, String name, Teacher teacher) {this.id = id;this.name = name;this.teacher = teacher; } public int getId() {return id; } public void setId(int id) {this.id = id; } public String getName() {return name; } public void setName(String name) {this.name = name; } public Teacher getTeacher() {return teacher; } public void setTeacher(Teacher teacher) {this.teacher = teacher; } @Override public String toString() {return 'Student{' +'id=' + id +', name=’' + name + ’’’ +', teacher=' + teacher +’}’; }}

database.properties配置文件數據庫需要的數據

driver = com.mysql.jdbc.Driverurl = jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf-8username = rootpassword = 123456

Mybatis工具類:mybatis-config.xml

<?xml version='1.0' encoding='UTF-8' ?><!DOCTYPE configurationPUBLIC '-//mybatis.org//DTD Config 3.0//EN''http://mybatis.org/dtd/mybatis-3-config.dtd'><configuration> <!--配置文件修改--> <properties resource='database.properties'/> <!--Mybatis設置--> <settings><!--默認日志實現--><!--<setting name='logImpl' value='STDOUT_LOGGING'/>--><!--Log4j實現--><setting name='logImpl' value='LOG4J'/> </settings> <!--配置別名--> <typeAliases><package name='com.MLXH.pojo'/> </typeAliases> <environments default='development'><environment id='development'> <transactionManager type='JDBC'/> <dataSource type='POOLED'><property name='driver' value='${driver}'/><property name='url' value='${url}'/><property name='username' value='${username}'/><property name='password' value='${password}'/> </dataSource></environment> </environments> <mappers><!--class對應的是一個接口類--><!--resource對應的是一個接口類的映射文件--><mapper resource='com/MLXH/dao/StudentMapper.xml'/> </mappers></configuration>

工具類:主要是為了使獲得sqlsession更為簡單方便

package com.MLXH.utils;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;import java.io.InputStream;//mybatis的工具類,重復的代碼的提純public class MyBatisUtils { //類變量不需要設置默認值; private static SqlSessionFactory sqlSessionFactory; static {//在maven中,所有的資源文件一般都放在resources目錄下,我們可以直接拿到。try { String resource = 'mybatis-config.xml'; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) { e.printStackTrace();} } //設置SqlSessionFactory公共的方法 public static SqlSessionFactory getSqlSessionFactory(){return sqlSessionFactory; } //獲得一個帶事務自動提交功能的SqlSession公共的方法 public static SqlSession getSqlSession(){//自動提交事務return sqlSessionFactory.openSession(true); }}

StudentDao接口

package com.MLXH.dao;import com.MLXH.pojo.Student;import java.util.List;public interface StudentDao { //獲得全部學生的信息以及對應的老師 List<Student> getStudents(); //獲得全部學生的信息以及對應的老師 List<Student> getStudentsTwo();}

針對于StudentDao接口的實現mapper文件:我們使用如下的方式來進行查詢

1.模擬數據庫思想:連表查詢

StudentMapper.xml

<?xml version='1.0' encoding='UTF-8' ?><!DOCTYPE mapperPUBLIC '-//mybatis.org//DTD Mapper 3.0//EN''http://mybatis.org/dtd/mybatis-3-mapper.dtd'><!--namespace不能寫別名--><mapper namespace='com.MLXH.dao.StudentDao'> <!--遇到問題:學生類中關聯老師: 多個學生對應一個老師 --><!--解決問題方式一:按查詢結果嵌套處理,模擬數據庫思想;--> <select resultMap='StudentTeacher'>select * from mybatis.student </select> <resultMap type='Student'><id column='id' property='id'/><result column='name' property='name'/><!--屬性和字段對應 , 類和表對應 , 對象和記錄關聯一個字段需求:拿到老師這個類的屬性association : 關聯,多對一 column : 數據庫對應的列名 property : 對應屬性名 javaType : 多對一字段對應的Java類型 select : 關聯一個語句--><association column='tid' property='teacher' javaType='Teacher' select='getTeacher'/> </resultMap> <select resultType='Teacher'>select * from mybatis.teacher where id = #{id} </select></mapper>

測試類

@Test public void getStudents(){SqlSession sqlSession = MyBatisUtils.getSqlSession();StudentDao mapper = sqlSession.getMapper(StudentDao.class);List<Student> students = mapper.getStudents();for (Student student : students) { System.out.println('學生姓名:'+student.getName()+'t老師姓名:'+student.getTeacher().getName());} }2.模擬面向對象的思想

<?xml version='1.0' encoding='UTF-8' ?><!DOCTYPE mapperPUBLIC '-//mybatis.org//DTD Mapper 3.0//EN''http://mybatis.org/dtd/mybatis-3-mapper.dtd'><!--namespace不能寫別名!!!!!--><mapper namespace='com.MLXH.dao.StudentDao'> <!-- 解決方式二:一個resultMap解決 , 模擬面向對象的思想--> <select resultMap='StudentTeacher2'>select s.id,s.name,t.id as tid,t.name as tnamefrom mybatis.student as s, mybatis.teacher as twhere s.tid = t.id </select> <!--設置結果集映射ResultMap --> <resultMap type='Student'><id property='id' column='id'/><result property='name' column='name'/><!--直接關聯一個老師--><association property='teacher' javaType='Teacher'> <id property='id' column='tid'/> <result property='name' column='tname'/></association> </resultMap></mapper>

測試

@Testpublic void getStudentsTwo(){ SqlSession sqlSession = MyBatisUtils.getSqlSession(); StudentDao mapper = sqlSession.getMapper(StudentDao.class); List<Student> students = mapper.getStudentsTwo(); for (Student student : students) {System.out.println('學生姓名:'+student.getName()+'t老師姓名:'+student.getTeacher().getName()); }}

Mybatis中多個對象包含同一個對象的處理操作

總結:

mybatis中遇到多對一的情況,要使用關聯映射處理:使用association

兩種處理思路:

數據庫思想 : 聯表查詢 OOP思想 :關聯對象Mybatis同時傳入多個對象及普通參數

當傳入多個文件時,mapper接口文件的方法參數要使用@param(“xx”)注釋。

例子:

mapper:

//Student是對象,age是String類型。int getPojo(@param('student') Student student, @param('age') String age );

xml:

<select resultMap='BaseResultMap'> select <include refid='Base_Column_List' /> from student where 1 = 1 <!-- 使用參數一(是個自己的對象) --> <if test='student.id != null'>and id = #{student.id} </if> <!-- 使用參數二 String類型 --> <if test='age!= null'>and age = #{age} </if></select>

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Mybatis 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚久久调教视频| 国产亚洲高清在线观看| 国产欧美日韩影院| 一区二区不卡| 亚洲欧洲av| 在线综合欧美| 国产精品自在| 国产精品激情| 日本视频中文字幕一区二区三区| 一区二区91| 一区二区小说| 99久久精品国产亚洲精品| 日韩国产专区| 亚洲黄色免费看| 欧美日韩一区二区国产| 国产精品一线| 欧美精品三级在线| 国产精品美女久久久久久不卡| 色综合视频一区二区三区日韩| 亚洲欧美日本国产专区一区| 一区二区三区四区在线观看国产日韩| 亚洲欧洲另类| 最新亚洲激情| 亚洲精品激情| 国产亚洲欧美日韩精品一区二区三区| 97精品资源在线观看| 亚洲v天堂v手机在线| 一区二区三区四区精品视频| 欧美日一区二区在线观看| 日本免费新一区视频| 久久国产生活片100| 国产一区二区三区天码| 在线天堂中文资源最新版| 日韩免费久久| 一区三区视频| 天堂久久av| 日本精品一区二区三区在线观看视频| 国产午夜精品一区在线观看| 国产精品乱战久久久| 免费看av不卡| 久久久久99| 欧美91福利在线观看| 最新国产精品视频| 久久国产婷婷国产香蕉| 红杏一区二区三区| 美女日韩在线中文字幕| 国产精品亚洲四区在线观看| 久久午夜影院| 欧美午夜不卡| 日本欧美一区| 日韩av有码| 亚洲资源网站| 国产极品嫩模在线观看91精品| 精品国产亚洲一区二区在线观看| 亚洲精品a级片| 久久亚洲一区| 日韩高清不卡在线| 丝瓜av网站精品一区二区| 日本免费新一区视频| 电影91久久久| 欧美sss在线视频| 丝袜亚洲另类欧美| 日本午夜精品视频在线观看| 99久久亚洲精品| 日本亚州欧洲精品不卡| 久久精品国产久精国产| 一区二区三区视频免费观看| 亚洲精品乱码| 91欧美日韩| 日韩精品一区二区三区中文字幕| 国产乱码精品一区二区三区亚洲人 | 日韩av首页| 黄页网站一区| 国产精品xxx| 免费国产自久久久久三四区久久 | 最新国产精品久久久| 麻豆久久久久久| 一区二区亚洲精品| 精品亚洲a∨| 蜜臀av亚洲一区中文字幕| 日韩av在线免费观看不卡| 精品欧美视频| 日韩福利视频一区| 桃色一区二区| 欧美日韩精品一区二区三区在线观看| 在线一区电影| 精品视频在线你懂得| 亚洲国产日韩欧美在线| 国产精品一区二区免费福利视频| 久久精品1区| 一区二区国产在线观看| 成人综合一区| 日韩三级一区| 99pao成人国产永久免费视频| 久久99精品久久久久久园产越南| 日韩精品不卡一区二区| 国产精品手机在线播放| 亚洲欧美久久久| 麻豆成全视频免费观看在线看| 三级亚洲高清视频| 日本久久综合| 国产欧美日韩一区二区三区四区 | 国产精品日本一区二区不卡视频| 日本大胆欧美人术艺术动态| 国产成人精品亚洲线观看| 亚洲作爱视频| 欧美日韩一区二区三区视频播放| 国产精品一区亚洲| 欧美综合国产| 国产高清精品二区| 免费日本视频一区| 亚洲欧洲高清| 欧美国产极品| 国产精品综合色区在线观看| 视频一区在线视频| 中文字幕人成乱码在线观看| 黄色欧美在线| 国产精品亚洲综合色区韩国 | av中文字幕在线观看第一页 | 久久中文字幕导航| 日韩不卡免费高清视频| 男女男精品视频网| 精品捆绑调教一区二区三区| 欧美日韩国产传媒| 中文在线免费视频| 国产精品最新| 日韩激情一二三区| 91国内精品| 羞羞答答国产精品www一本| 国产精品极品在线观看| 亚洲成av在线| 亚洲激情久久| 国产精品xxx在线观看| 青青草国产精品亚洲专区无| 国产毛片一区二区三区| 91免费精品国偷自产在线在线| 日韩啪啪电影网| 久久精品国产精品亚洲毛片| 亚洲不卡系列| 日韩中文字幕91| 91精品蜜臀一区二区三区在线 | 中文不卡在线| 日韩高清电影免费| 视频精品一区二区| 亚洲深深色噜噜狠狠爱网站 | 欧美国产三级| 国产中文欧美日韩在线| 色天使综合视频| 一区二区视频欧美| 伊人久久大香伊蕉在人线观看热v| 欧美日韩黄网站| 国产精品毛片久久| 亚洲电影在线一区二区三区| 石原莉奈一区二区三区在线观看 | 婷婷五月色综合香五月| 国产精品成人自拍| 中文字幕系列一区| 欧美综合二区| 国产精品777777在线播放 | 久久www成人_看片免费不卡| 国产三级一区| 夜鲁夜鲁夜鲁视频在线播放| 亚洲男女自偷自拍| 国产亚洲久久| 三级精品视频| 蜜桃久久久久久| 国产福利一区二区精品秒拍 | 亚洲综合色婷婷在线观看| 国产精品亚洲综合在线观看| 性欧美xxxx免费岛国不卡电影| 日韩免费视频| 精品国产一区二区三区2021| 国产精品中文字幕亚洲欧美| 欧美视频久久| 丝袜诱惑一区二区| 欧美一区三区| 涩涩涩久久久成人精品| 午夜一区在线| 国产一级成人av| 国产成人精品一区二区免费看京| 久久久久蜜桃| 免费av一区| 国产精品97| 香蕉久久久久久久av网站| 四虎4545www国产精品 | 亚洲精品日本| 国产精品国码视频| 国产91在线播放精品| 国精品产品一区| 毛片在线网站| 日韩电影免费网站| 亚洲一区二区日韩| 国产精品xxx| 石原莉奈一区二区三区在线观看| 午夜国产精品视频| 国产亚洲精品自拍| 好吊视频一区二区三区四区| 国产亚洲一区| 六月丁香综合| 欧美亚洲精品在线|