Mapper多表关联查询学习

1、首先写sql语句

select p.id, p.create_time, p.update_time, p.create_user, p.update_user, p.project_name, p.test_user, 
    p.dev_user, p.simple_desc, p.other_desc, p.project_code, p.belong_env_id, p.status_id,u.status_name,u.description from projectinfo_temp p LEFT JOIN usestatus u on p.status_id = u.id

2、关联pojo


@ToString
public class ProjectinfoTemp {

    private Integer id;

    private Date createTime;

    private Date updateTime;

    private String createUser;

    private String updateUser;

    private String projectName;

    private String testUser;

    private String devUser;

    private String simpleDesc;

    private String otherDesc;

    private String projectCode;

    private Integer belongEnvId;

    private Integer statusId;
    /**
     *  关联状态表 激活状态
     */
    private Usestatus usestatus;

状态表

/**
 *
 * @author liwen406
 * @date 2019-04-21 09:12
 */
@ToString
public class Usestatus {
    private Integer id;

    private String statusName;

    private String description;

3编写关联sql语句

模仿写法


<sql id="WithBase_Column_List" >
p.id, p.create_time, p.update_time, p.create_user, p.update_user, p.project_name, p.test_user,
p.dev_user, p.simple_desc, p.other_desc, p.project_code, p.belong_env_id, p.status_id,u.status_name,u.description
</sql>
<select id="selectByExample" resultMap="BaseResultMap" parameterType="com.apitest.pojo.ProjectinfoTempExample" >
    select
    <if test="distinct" >
      distinct
    </if>
    <include refid="Base_Column_List" />
    from projectinfo_temp
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
    <if test="orderByClause != null" >
      order by ${orderByClause}
    </if>
  </select>

  <select id="selectByExamplestart" resultMap="WithBaseResultMap"  >
    select
    <if test="distinct" >
      distinct
    </if>
    <include refid="WithBase_Column_List" />
    from projectinfo_temp p LEFT JOIN usestatus u on p.status_id = u.id
    <if test="_parameter != null" >
      <include refid="Example_Where_Clause" />
    </if>
    <if test="orderByClause != null" >
      order by ${orderByClause}
    </if>
  </select>

4前端调用写法

<div class="x_content">
                                <table id="datatable" class="table table-striped table-bordered">
                                    <thead>
                                    <tr>
                                        <th class="table-title">应用编号</th>
                                        <th class="table-title">应用名称</th>
                                        <th class="table-title">测试负责人</th>
                                        <th class="table-title">开发负责人</th>
                                        <th class="table-title">模块/接口/用例</th>
                                        <th class="table-title">状态</th>
                                        <th class="table-title">操作</th>
                                    </tr>
                                    </thead>
                                    <tbody>
                                    <tr th:each="pagefo:${pageInfo.list}">
                                        <td th:text="${pagefo.projectCode}"></td>
                                        <td th:text="${pagefo.projectName}"></td>
                                        <td th:text="${pagefo.testUser}"></td>
                                        <td th:text="${pagefo.devUser}"></td>
                                        <td th:text="${pagefo.belongEnvId}"></td>
                                        <td th:text="${pagefo.usestatus.statusName}"></td>
                                        <td>
                                            <a type="button" class="fa fa-bug btn  btn-round btn-success"
                                               th:href="@{/run/}+${pagefo.projectCode}">运行</a>
                                            <a type="button" class="fa fa-edit btn btn-round btn-info"
                                               th:href="@{/cache/editProjectInf/}+${pagefo.projectCode}">编辑</a>
                                            <a type="button" class="fa fa-trash-o btn  btn-round btn-danger"
                                               th:href="@{/deleteProjectinfoTemp/}+${pagefo.projectCode}">删除</a>
                                        </td>
                                    </tr>
                                    </tbody>
                                </table>
                                <div class="box-footer">
                                    <div class="pull-left">
                                        <div class="form-group form-inline">
                                            <span th:text="'共'+${pageInfo.getPages()}+'页'"></span>,
                                            <span th:text="'当前为'+${pageInfo.getPageNum()}+'页'"></span>
                                            <span th:text="'总'+${pageInfo.getTotal()}+'条记录'"></span>
                                        </div>
                                    </div>

                                    <div class="box-tools pull-right">
                                        <ul class="pagination">
                                            <li><a th:href="@{/cache/project_list_cache(start=0)}"
                                                   aria-label="Previous">[首 页]</a></li>
                                            <li><a th:href="@{/cache/project_list_cache(start=${pageInfo.pageNum-1})}">[上一页]</a>
                                            </li>
                                            <li><a th:href="@{/cache/project_list_cache(start=${pageInfo.pageNum+1})}">[下一页]</a>
                                            </li>
                                            <li><a th:href="@{/cache/project_list_cache(start=${pageInfo.pages})}"
                                                   aria-label="Next">[尾 页]</a></li>
                                        </ul>
                                    </div>
                                </div>
                            </div>

5、访问结果显示

Mapper多表关联查询学习

坚持就是胜利

猜你喜欢

转载自blog.51cto.com/357712148/2382122