直接上代码
一对一查询:
<mapper namespace="com.inspur.idcrm.mapper.UserMapper"> <resultMap type="User" id="userMap"> <id property="id" column="id"/> <result property="userID" column="USER_ID"/> <result property="userName" column="USER_NAME"/> <result property="userSex" column="USER_SEX"/> <result property="userTel" column="USER_TEL"/> <result property="userEmail" column="USER_EMAIL"/> <association property="customer" column="USER_CUSTOMERID" javaType="Customer"> <id property="id" column="id" /> <result property="customerCode" column="CUSTOMER_CODE"/> <result property="customerName" column="CUSTOMER_NAME"/> <result property="customeraddress" column="CUSTOMER_ADDRESS"/> <result property="customerContancts" column="CUSTOMER_CONTANCTS"/> <result property="customerTel" column="CUSTOMER_TEL"/> <result property="customerEmail" column="CUSTOMER_EMAIL"/> <result property="customerMemo" column="CUSTOMER_MEMO"/> <result property="customerTypeID" column="CUSTOMER_TYPEID"/> <result property="manageName" column="MANAGE_NAME"/> <result property="manager" column="MANAGER"/> <result property="managerTel" column="MANAGER_TEL"/> <result property="customerTeName" column="CUSTOMER_TE_NAME"/> <result property="customerTeTel" column="CUSTOMER_TE_TEL"/> </association> <collection property="roleList" javaType="ArrayList" column="id" ofType="Role" select="selectUserRoles" > <id property="id" column="id"/> <result property="roleName" column="role_name" javaType="string" jdbcType="VARCHAR"/> <result property="roleDesc" column="role_desc" javaType="string" jdbcType="VARCHAR"/> </collection> </resultMap>
customer对象与User是一对一关系,通过配置association 进行关联,查询用户信息,同时把用户所属单位也查询出来。
一对多关系
配置collection进行关联,查询用户信息把每个用户的所有角色信息也查询出来
<select id="getUserList2" parameterType="User" resultType="java.util.List" resultMap="userMap"> select * from t_user as u, t_customer as c where 1=1 and u.USER_CUSTOMERID = c.id <if test="id!=null and id!=''"> and id=#{id} </if> <if test="userID!=null and userID!=''"> and USER_ID=#{userID} </if> <if test="userName!=null and userName!=''"> and USER_NAME LIKE CONCAT(CONCAT('%', #{userName}),'%') </if> <if test="userSex!=null and userSex!=''"> and USER_SEX =#{userSex} </if> <if test="userTel!=null and userTel!=''"> and USER_TEL LIKE CONCAT(CONCAT('%', #{userTel}),'%') </if> <if test="userEmail!=null and userEmail!=''"> and USER_EMAIL LIKE CONCAT(CONCAT('%', #{userEmail}),'%') </if> <if test="customer!=null and customer!=''"> and USER_CUSTOMERID=#{customer.id} </if> </select> <select id="selectUserRoles" resultType="Role" parameterType="int"> select r.id,r.role_name as roleName,r.role_desc as roleDesc from t_role r left join t_user_role u on r.id=u.ROLE_ID where u.USER_ID=#{id} </select>
<select id="selectUserRoles" resultType="Role" parameterType="int">
select r.id,r.role_name as roleName,r.role_desc as roleDesc from t_role r left join t_user_role u on r.id=u.ROLE_ID where u.USER_ID=#{id}
</select>
这个地方遇到一个问题,由于返回时resultType是javabean,如果sql语句中不加别名,无法与javabean的属性进行一一对应,如果不添加别名,需要配置一个role的resultMap。初学者出现情况
相关推荐
初学者在学习MyBatis框架时,会遇到环境配置问题,因为缺少JRA包导致的,只要加上所有的驱动包,就能解决问题。
学习mybatis 不创建maven 需要下载jar包 但是在GitHub上下载实在是太慢了,有时还可能下载不了。分享一下
主要介绍了springboot集成mybatis-plus遇到的问题及解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了使用mybatis-plus的insert方法遇到的问题及解决方法(添加时id值不存在异常),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
我们经常会遇到表中的字段名和表对应实体类的属性名称不一定都是完全相同的情况,如何解决呢?下面脚本之家小编给大家介绍MyBatis学习教程(四)-如何快速解决字段名与实体类属性名不相同的冲突问题,一起学习吧
一个从零开始的SSM框架Demo对一个新手来说,是非常重要的,可大大减少在学习过程中遇到的各种各样的坑,说到最后,也算是助人为乐吧!下面我们从零开始进行SSM框架的搭建,在介绍最后,我会把项目部署在GitHub以便...
比如,刚开始学习Java的时候可能会遇到JDBC,它是连接Java和数据库的桥梁,我们可以使用JDBC来建立与数据库之间的连接并且执行相应的SQL语句。虽然JDBC的执行效率很高,但是其开发效率比较低。正是如此,市面上出现...
在使用 Spring Boot 结合 Redis 使用 Lua 脚本时,可能会遇到以下问题和解决方案: 1. 问题:执行 Lua 脚本时出现错误。 解决方案:检查 Lua 脚本的语法是否正确,以及传递给脚本的参数是否正确。可以使用 Redis ...
mybatis与spring整合的简单实例,代码完整详细。 其中用到的数据库为mybatis,可以自行更改数据库与表的链接。 因为在自己学习中遇到了很多问题,因此上传成功执行的代码供大家一起学习。
最近在学习开发一个小程序,过程中遇到了许多bug,今天便开始将这些遇到的问题以及寻得的解决办法记录下来,以便日后的学习。也希望对读者有所帮助。 昨天在使用mybatis查询的时候出现了返回结果为null,报错具体情况...
在使用mybatis的时候经常会遇到枚举类型的转换,下面这篇文章主要给大家介绍了关于mybatis中实现枚举自动转换的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或工作具有一定的参考学习价值,需要的朋友们...
内容简介: MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。...为了让大家快速系统了解MyBatis核心知识全貌,我为你总结了「MyBatis知识框架图」,帮你梳理学习重点,建议
【项目介绍】 基于Vue+SpringBoot+MyBatis开发的前后端分离的人事管理系统源码+sql数据库+部署说明(课设新项目).zip 基于Vue+SpringBoot+MyBatis开发...无论您是运行还是二次开发,遇到问题或困惑,欢迎私信交流学习。
SpringBoot集成其他技术目前是比较热门的课题,根据收到的网友反馈希望能有相关课程出来,于是利用休息时间制作了本套小教程,通过观看本视频你可以掌握SpringBoot+Mybatis整合技术,并且遇到问题如何去排除bug,...
适合入门者学习中遇到的各种问题困惑,步骤清晰
分页功能是我们日常开发中经常会遇到的,下面这篇文章主要给大家介绍了Spring MVC+MyBatis+MySQL实现分页功能的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
在项目开发中我们经常会遇到表中的字段名和表对应实体类的属性名称不一定都是完全相同的。下面小编给大家介绍下这种情况下如何解决字段名...下面小编给大家带来了Mybatis实体类和表映射的解决方法,小伙伴们一起学习吧
枚举类型是我们在开发中经常遇到的一个类型,最近在学习MyBatis,但是发现网上没有详细介绍MyBatis如何使用枚举的相关文章,索性就自己写一篇,下面这篇文章主要给大家介绍了关于在MyBatis中如何优雅的使用枚举的...
这是一个maven工程,整合springMVC和mybits加mysql实现的一个简单的web访问的demo。简单实现的功能是:mysql中有user表,从... 我会在iteye和我的博客园实时更新网站的进度,也会把我遇到的问题和解决方法更新到这里。
社区支持:全球的开发者社区意味着您可以在遇到问题时找到大量的资源和支持。 无论您是初出茅庐的Java新手,还是经验丰富的开发者,这个项目都将为您提供一个深入了解SpringBoot的机会。无论您是想学习新的技能,...