mybatis多表查询
1 2 3 4 5 6 7 8 9 10 11 12 | /* *作者:呆萌老师 *☑csdn认证讲师 *☑51cto高级讲师 *☑腾讯课堂认证讲师 *☑网易云课堂认证讲师 *☑华为开发者学堂认证讲师 *☑爱奇艺千人名师计划成员 *在这里给大家分享技术、知识和生活 *各种干货,记得关注哦! *vx:it_daimeng */ |
一个学生对应一个班级的情况
方法1:
<!-- 多表查询 -->
<!-- 用户表和班级表进行内连接查询 -->
<!-- 不能用resultType 要用resultMap 里面的类型需要自己定义-->
方法2:
<!-- 将内连接拆分成两个查询语句 -->
<select id="selectUserinfo" resultMap="userinfoMap2" >
select * from userinfo
</select>
<select id="selectGradeByCid" parameterType="int" resultType="Grade" >
select * from grade where cid=#{cid}
</select>
<resultMap type="Userinfo" id="userinfoMap2">
<id property="uid" column="uid" />
<result property="name" column="name" />
<result property="age" column="age" />
<association property="grade" column="cid" select="selectGradeByCid">
</association>
</resultMap>
一个班级对应多个学生的情况
<!-- 分开查询 -->
Dao:
//1.读取配置文件
InputStream is=this.getClass().getClassLoader().getResourceAsStream("mybatis.xml");
//2.获取会话工厂创建者
SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
//3.获取会话工厂
SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(is);
//4.获取会话
SqlSession sqlSession=sqlSessionFactory.openSession();
//5.查询
List<Userinfo> userlist=sqlSession.selectList("com.test.bean.UserinfoMapper.selectUserinfo",1);
//关闭会话
sqlSession.close();
for(int i=0;i<userlist.size();i++)
System.out.println(userlist.get(i).toString());
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)