mybatis多表查询

简介: mybatis多表查询

mybatis解决字段和属性名不一致问题的三种方法

方法一:修改sql语句

比如select smp_name(数据库字段名) smpName(类属性名) form user;

方法二:在mybatis全局配置里面设置

这里的映射规则是将_映射为驼峰命名法,比如smp_name会被映射为smpName

<!--设置MyBatis的全局配置-->
    <settings>
        <!--将_自动映射为驼峰,emp_name:empName-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <!--开启延迟加载-->
        <setting name="lazyLoadingEnabled" value="true"/>
    </settings>

方法三:设置resultMap

<resultMap id="empResultMap" type="Emp">
        <id property="eid" column="eid"></id>
        <result property="empName" column="emp_name"></result>
        <result property="age" column="age"></result>
        <result property="sex" column="sex"></result>
        <result property="email" column="email"></result>
    </resultMap>

Mybatis处理多对一映射关系的三种方式

方式一:级联属性赋值

<!--处理多对一映射关系方式一:级联属性赋值-->
    <resultMap id="empAndDeptResultMapOne" type="Emp">
        <id property="eid" column="eid"></id>
        <result property="empName" column="emp_name"></result>
        <result property="age" column="age"></result>
        <result property="sex" column="sex"></result>
        <result property="email" column="email"></result>
        <result property="dept.did" column="did"></result>
        <result property="dept.deptName" column="dept_name"></result>
    </resultMap>

方式二:association

<!--处理多对一映射关系方式二:association-->
    <resultMap id="empAndDeptResultMapTwo" type="Emp">
        <id property="eid" column="eid"></id>
        <result property="empName" column="emp_name"></result>
        <result property="age" column="age"></result>
        <result property="sex" column="sex"></result>
        <result property="email" column="email"></result>
        <!--
            association:处理多对一的映射关系
            property:需要处理多对的映射关系的属性名
            javaType:该属性的类型
        -->
        <association property="dept" javaType="Dept">
            <id property="did" column="did"></id>
            <result property="deptName" column="dept_name"></result>
        </association>
    </resultMap>

方式三:分步查询

<resultMap id="empAndDeptByStepResultMap" type="Emp">
        <id property="eid" column="eid"></id>
        <result property="empName" column="emp_name"></result>
        <result property="age" column="age"></result>
        <result property="sex" column="sex"></result>
        <result property="email" column="email"></result>
        <!--
            select:设置分步查询的sql的唯一标识(namespace.SQLId或mapper接口的全类名.方法名)
            column:设置分布查询的条件
            fetchType:当开启了全局的延迟加载之后,可通过此属性手动控制延迟加载的效果
            fetchType="lazy|eager":lazy表示延迟加载,eager表示立即加载
        -->
        <association property="dept"
                     select="com.atguigu.mybatis.mapper.DeptMapper.getEmpAndDeptByStepTwo"
                     column="did"
                     fetchType="eager"></association>
    </resultMap>


相关文章
|
7月前
|
Java 数据库连接 数据库
MyBatis之多表查询
MyBatis之多表查询
|
SQL XML Java
Mybatis:SQL注入问题 like模糊查询 多表查询 动态SQL
Mybatis:SQL注入问题 like模糊查询 多表查询 动态SQL
1244 0
|
7月前
|
XML Java 数据库连接
【MyBatis】1、MyBatis 核心配置文件、多表查询、实体映射文件 ......
【MyBatis】1、MyBatis 核心配置文件、多表查询、实体映射文件 ......
158 0
|
7月前
|
SQL Java 数据库连接
Mybatis如何实现多表查询
Mybatis如何实现多表查询
|
SQL XML Java
Mybatis的多表查询操作 2
Mybatis的多表查询操作
138 1
|
XML Java 数据库连接
Mybatis的多表查询操作 1
Mybatis的多表查询操作
69 1
|
XML Java 数据库连接
“MyBatis中的关联关系配置与多表查询“
“MyBatis中的关联关系配置与多表查询“
78 0
|
SQL Java 数据库连接
|
SQL Java 数据库连接
Mybatis如何实现多表查询?
MyBatis是一个Java持久层框架,它提供了多种方式来实现多表查询。
925 0
|
SQL XML Java
如何在 MyBatis 中进行多表查询以及注解开发?
如何在 MyBatis 中进行多表查询以及注解开发?
328 0
下一篇
DataWorks