mybatis系列九:利用业务实体类和hashmap进行关联

编程入门 行业动态 更新时间:2024-10-25 06:29:06

mybatis系列九:利用<a href=https://www.elefans.com/category/jswz/34/1768917.html style=业务实体类和hashmap进行关联"/>

mybatis系列九:利用业务实体类和hashmap进行关联

    其实mybatis的关联是很灵活的,可以不用任何关联配置。这里介绍两种关联方式,可以针对于任何关联操作,不管是几对几。

方式一:利用业务实体类进行关联

sql配置

<!-- 用业务实体类进行关联 --><select id="selectByJoinEntity" resultType="com.obtk.entitys.JoinEntity">SELECT s.stuId,s.stuName,s.gender,s.age,d.departNameFROM student s LEFT JOIN department dON s.deptIdd=d.deptId
</select>
业务实体类

package com.obtk.entitys;import java.io.Serializable;
//业务实体
public class JoinEntity implements Serializable{private static final long serialVersionUID = 6498540528701698221L;private int stuId;private String stuName;private String gender;private int age;private String departName;public JoinEntity() {}public int getStuId() {return stuId;}public void setStuId(int stuId) {this.stuId = stuId;}public String getStuName() {return stuName;}public void setStuName(String stuName) {this.stuName = stuName;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getDepartName() {return departName;}public void setDepartName(String departName) {this.departName = departName;}}
测试类

package com.obtk.test3;import java.util.List;import org.apache.ibatis.session.SqlSession;import com.obtk.entitys.JoinEntity;
import com.obtk.utils.MybatisUtil;public class TestJoinByEntity {public static void main(String[] args) {SqlSession session=null;try {//1.得到sessionsession=MybatisUtil.getSession();//2.执行语句List<JoinEntity> stuList=session.selectList("stu.selectByJoinEntity");for(JoinEntity stu : stuList){System.out.println(stu.getStuId()+","+stu.getStuName()+","+stu.getGender()+","+stu.getAge()+","+stu.getDepartName());}} catch (Exception e) {e.printStackTrace();}finally{MybatisUtil.closeSession();}}
}
运行结果

DEBUG - ooo Using Connection [com.mysql.jdbc.JDBC4Connection@1d3cdaa]
DEBUG - ==>  Preparing: SELECT s.stuId,s.stuName,s.gender,s.age,d.departName FROM student s LEFT JOIN department d ON s.deptIdd=d.deptId 
DEBUG - ==> Parameters: 
100,王燕,女,18,计算机系
101,张栋,男,21,计算机系
102,李波,男,21,艺术系
103,陈建,男,19,艺术系
104,王江洪,男,25,经管系
105,潘将,男,24,工程系
106,张斌,男,22,土木系
107,张斌,女,20,计算机系
108,刘大海,男,28,计算机系
109,刘德华,男,31,计算机系
110,周润发,男,41,艺术系
111,张学友,男,37,艺术系
112,周星驰,男,42,经管系
113,刘亦菲,女,24,工程系
114,胡歌,男,32,土木系
115,范冰冰,女,20,计算机系
116,杨幂,女,26,土木系
117,刘涛,女,27,工程系
118,周迅,女,21,工程系
119,古力娜扎,女,19,计算机系
120,黑山老妖,妖,99,null
DEBUG - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@1d3cdaa]
DEBUG - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@1d3cdaa]
DEBUG - Returned connection 30657962 to pool.

方式二:利用hashmap进行关联
sql配置

<!-- 万能关联 --><select id="selectByQnn" parameterType="map" resultType="hashmap">select * from student s inner join department don s.deptIdd=d.deptIdwhere s.gender=#{sex}and d.departName=#{deptName}</select>
关键在于resultType="hashmap"     意思是查出来的每一行数据都映射成一个hashmap对象。

代码:

package com.obtk.test3;import java.util.HashMap;
import java.util.List;
import java.util.Map;import org.apache.ibatis.session.SqlSession;import com.obtk.entitys.StudentEntity;
import com.obtk.utils.MybatisUtil;public class TestJoinQnn {public static void main(String[] args) {SqlSession session=null;try {//4.得到sessionsession=MybatisUtil.getSession();Map paramMap=new HashMap();paramMap.put("sex", "男");paramMap.put("deptName", "计算机系");//5.执行语句List<HashMap> stuList=session.selectList("stu.selectByQnn",paramMap);for(HashMap theObj : stuList){System.out.println(theObj.get("stuId")+","+theObj.get("gender")+","+theObj.get("stuName")+","+theObj.get("departName"));}} catch (Exception e) {e.printStackTrace();}finally{MybatisUtil.closeSession();}}
}
运行结果:

DEBUG - ooo Using Connection [com.mysql.jdbc.JDBC4Connection@1f2cea2]
DEBUG - ==>  Preparing: select * from student s inner join department d on s.deptIdd=d.deptId where s.gender=? and d.departName=? 
DEBUG - ==> Parameters: 男(String), 计算机系(String)
101,男,张栋,计算机系
108,男,刘大海,计算机系
109,男,刘德华,计算机系
DEBUG - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@1f2cea2]
DEBUG - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@1f2cea2]
DEBUG - Returned connection 32689826 to pool.






更多推荐

mybatis系列九:利用业务实体类和hashmap进行关联

本文发布于:2024-02-26 16:10:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1703103.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:业务   系列   实体类   mybatis   hashmap

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!