日志表、评论表、用户表
ReportDao.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://www.mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xinfeijinxin.qy.dao.IreportDao">
<!-- 这里namespace必须是UserMapper接口的路径,不然要运行的时候要报错 “is not known to the MapperRegistry”-->
<!-- 测试resultMap -->
<!-- 查询日报,返回日报,日报撰写人,评论,评论人 -->
<resultMap type="QyRb" id="myRbResult">
<result property="gzrbid" column="gzrbid"/>
<result property="userid" column="a_userid"/>
<result property="rbbt" column="rbbt"/>
<result property="rbnr" column="rbnr"/>
<result property="tjsj" column="tjsj"/>
<association property="qyUser" column="a_userid" javaType="QyUser" >
<result property="userid" column="c_userid"/>
<result property="xm" column="c_xm"/>
<result property="tx" column="c_tx"/>
</association>
<collection property="qyRbpls" ofType="com.xinfeijinxin.qy.bean.QyRbpl">
<result property="rbplid" column="rbplid"/>
<result property="userid" column="b_userid"/>
<result property="rbplnr" column="rbplnr"/>
<result property="rbplsj" column="rbplsj"/>
<association property="qyUser" column="b_userid" javaType="QyUser">
<result property="userid" column="d_userid"/>
<result property="xm" column="d_xm"/>
<result property="tx" column="d_tx"/>
</association>
</collection>
</resultMap>
<select id="myQueryRb" resultMap="myRbResult" parameterType="map">
select a.gzrbid,a.rbbt,a.rbnr,a.tjsj,a.userid as a_userid,
c.userid as c_userid,c.xm as c_xm,c.tx as c_tx,
b.rbplid,b.userid as b_userid ,b.rbplnr,b.rbplsj,
d.userid as d_userid,d.xm as d_xm,d.tx as d_tx
FROM qy_rb as a
left join qy_rbpl b on a.gzrbid=b.gzrbid
LEFT JOIN qy_user c ON a.userid=c.userid
JOIN qy_user d ON d.userid=b.userid
ORDER BY a.gzrbid
</select>
<!-- 查询日报评论数 -->
<select id="myCountPL" resultType="int" parameterType="map">
select count(*)
from qy_rbpl a
where a.gzrbid=#{gzrbid}
</select>
</mapper>
效果图
用户表
用户表(qy_user) |
|
userid(int) |
用户id |
tx(头像名称) |
用户头像 |
xm |
用户姓名 |
评论表
评论表(qy_rbpl) |
|
rbplid(int) |
评论id |
gzrbid(int) |
日志id |
rbplnr |
评论内容 |
userid(int) |
用户id |
rbplsj |
评论时间 |
日志表
日志表(qy_rb) |
gzrbid(int) |
日志id |
userid(int) |
用户id |
rbbt |
日志标题 |
rbnr |
日志内容 |
tjsj |
提交时间 |
- 大小: 18.2 KB
分享到:
相关推荐
MyBatis 是一款深受开发者喜爱的持久层框架,它简化了Java开发中的数据库操作,使得开发者可以更加专注于SQL语句的编写,而无需过多关注数据访问的底层细节。本篇文章将详细探讨MyBatis在关联查询中的一对一和一对多...
Mybatis实现多表联合查询和批量插入 Mybatis是一款流行的持久层框架,它可以帮助开发者快速、高效地访问数据库。在实际开发中,经常需要对多个表进行联合查询,或者对大量数据进行批量插入。本文将详细介绍如何使用...
在实际开发中,我们经常需要进行分布查询,也就是多个表之间的联合查询,MyBatis提供了丰富的功能来处理这种情况。本篇文章将深入探讨MyBatis中的分布查询、`resultType`与`resultMap`的用法,并分享新手学习MyBatis...
通过自定义 `resultMap`,可以方便地处理嵌套查询和联合主键等问题。 5. 自动类型转换:Mybatis 提供了自动类型转换功能,可以根据 Java 类型和数据库类型进行自动匹配,简化了数据转换的代码。此外,还可以自定义 ...
这个实例是针对初学者设计的,旨在帮助理解Mybatis如何进行基本的增删改查操作,以及如何处理多表联合查询并返回实体集合。让我们详细探讨一下其中涉及的关键知识点。 1. **Mybatis基础**: Mybatis是一个轻量级的...
mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis SqlSessionDaoSupport的使用附代码下载 转自:...
MyBatis-Plus 多表联合查询并且分页(3 表联合) MyBatis-Plus 是一个基于 MyBatis 的增强型 ORM 框架,提供了很多实用的功能,例如多表联合查询和分页等。下面我们将详细介绍如何使用 MyBatis-Plus 实现多表联合...
`Wrapper`是一个条件构造器,可以构建复杂的SQL查询语句。例如,你可以创建一个`EqWrapper`(等于条件)或`LikeWrapper`(模糊匹配条件),然后调用`leftJoin()`或`rightJoin()`来添加连接条件。 ```java Query...
通过Sharding-JDBC和MyBatis实现数据库分片,结合Logstash将MySQL数据同步到Elasticsearch,解决了分库分表后的联合查询难题,同时利用Elasticsearch的高性能搜索能力,实现了高效的数据筛选。这样的设计思路在大...
为了在查询时一并获取副表的数据,我们可以使用MyBatis的联合查询(JOIN)功能。 假设主表为`User`,副表为`Order`,`User`表有一个`userId`字段作为主键,`Order`表有一个`userId`字段作为外键引用`User`表。在`...
MyBatis 提供了多种高级查询功能,如结果分页、联合查询、子查询、关联查询等,使得 SQL 编写更加灵活。 9. **延迟加载(Lazy Loading)**: 当需要时,MyBatis 才会加载关联的对象,这种机制可以减少内存消耗,...
5. **动态SQL**:MyBatis的动态SQL功能非常强大,可以让我们在XML映射文件中编写条件语句,根据传入参数动态改变SQL结构,从而实现复杂的多表查询。常用的动态SQL标签有`<if>`, `<choose>`, `<when>`, `<otherwise>`...
在本示例中,我们将探讨如何使用MyBatis进行基本的CRUD(创建、读取、更新、删除)操作,并结合多表联合查询来获取更复杂的数据。 首先,我们从`mybatis建表语句.sql`开始。这个文件通常包含了创建数据库表的SQL...
本案例主要探讨的是如何使用Mybatis的注解进行多表联合分页查询,这对于提高开发效率和优化数据库性能至关重要。 首先,我们需要理解Mybatis注解的基本用法。Mybatis注解允许我们直接在Java类和方法上声明SQL语句,...
6. **多表查询**:在实际项目中,往往需要进行多表联合查询。MyBatis支持JOIN操作,可以在Mapper XML文件中编写JOIN语句,或者使用`<association>`、`<collection>`等标签进行复杂关联映射。 7. **事务管理**:...
1. SQL映射文件:MyBatis的核心是XML配置文件或注解,其中包含了SQL语句和对应的Java方法映射。 2. 映射器接口:定义了数据库操作的方法,与XML中的SQL语句相对应。 3. SQLSession:执行数据库操作的对象,负责与...
最后,**多表操作** 在实际项目中经常遇到,Mybatis提供了多种方式进行多表联合查询,包括LEFT JOIN、RIGHT JOIN等。通过注解方式,可以在@Select注解中写入复杂的JOIN语句,或者通过动态SQL(使用、、、等标签)来...
在不启用这个拦截器的情况下,尽管你可能使用了MP的分页API,但实际上不会在SQL中看到`LIMIT`或`OFFSET`这样的分页语句,从而导致查询返回所有数据。 问题在于,当你在使用MybatisPlus进行分页查询时,如果未正确...
4. 联合查询多个实体:如果需要查询多个实体的字段,可以在 `newInstance()` 方法中传入更多的实体类,并通过下标或表名引用对应的字段。例如,查询订单、用户和地址的部分字段: ```java multipleSelect.new...
本专题将深入探讨MyBatis的一对多关联查询,以"mybatis061 多表查询"为例,旨在帮助你理解和掌握如何在实际项目中实现多表数据的联合检索。 首先,了解一对多关系:在数据库设计中,一对多关系是指一个表中的记录...