当前位置: 首页 > wzjs >正文

简历在线制作网站一个好的产品怎么推广

简历在线制作网站,一个好的产品怎么推广,好的做网站的,高端网约车司机真实收入文章目录 前言1. 数据库表结构2. MyBatis Mapper XML3. Java 实体类4. 技术点解析5. 执行效果6. 优化建议 前言 提示:这里可以添加本文要记录的大概内容: 以下是一个结合 SQL 别名、子查询、MyBatis 字段映射和代码复用的完整案例,以用户管…

文章目录

  • 前言
  • 1. 数据库表结构
  • 2. MyBatis Mapper XML
  • 3. Java 实体类
  • 4. 技术点解析
  • 5. 执行效果
  • 6. 优化建议


前言

提示:这里可以添加本文要记录的大概内容:

以下是一个结合 SQL 别名、子查询、MyBatis 字段映射和代码复用的完整案例,以用户管理系统为例:

场景描述
查询用户信息时需同时显示:

  1. 基础用户信息
  2. 所属部门名称
  3. 最近3个月的订单数量
  4. 使用代码复用优化重复SQL片段

1. 数据库表结构

用户表(User)
在这里插入图片描述
部门表(Department)
在这里插入图片描述
订单表(Order)
在这里插入图片描述


2. MyBatis Mapper XML

<!-- 结果映射 -->
<resultMap id="userResultMap" type="UserDTO"><id property="userId" column="user_id"/><result property="username" column="username"/><result property="departmentName" column="department_name"/><result property="orderCount" column="order_count"/><result property="createTime" column="create_time"/>
</resultMap><!-- 定义可复用的基础字段 -->
<sql id="baseUserColumns">u.id AS user_id,u.username,u.create_time
</sql><!-- 定义部门关联字段 -->
<sql id="deptColumns">d.dept_name AS department_name
</sql><!-- 复合查询 -->
<select id="selectUserWithStats" resultMap="userResultMap">SELECT <!-- 复用基础字段 --><include refid="baseUserColumns"/>,<!-- 复用部门字段 --><include refid="deptColumns"/>,<!-- 使用子查询和别名 -->(SELECT COUNT(*) FROM order o WHERE o.user_id = u.idAND o.order_time >= DATE_SUB(NOW(), INTERVAL 3 MONTH)) AS order_countFROM user uLEFT JOIN department d ON u.dept_id = d.idWHERE u.id = #{userId}
</select>

3. Java 实体类

public class UserDTO {private Long userId;       // 映射 user_idprivate String username;   // 直接映射private String departmentName; // 映射 department_nameprivate Integer orderCount;    // 映射 order_countprivate Date createTime;   // 映射 create_time// getters/setters
}

4. 技术点解析

  1. SQL 别名(Alias)
   u.id AS user_id,d.dept_name AS department_name
  • 解决字段名冲突
  • 实现数据库蛇形命名到Java驼峰命名的转换
  1. 子查询封装
   (SELECT COUNT(*) ...) AS order_count
  • 将复杂统计逻辑封装在子查询中
  • 避免多次查询数据库
  1. MyBatis字段映射
   <resultMap id="userResultMap" type="UserDTO"><id property="userId" column="user_id"/><result property="departmentName" column="department_name"/></resultMap>
  • 实现数据库字段到对象属性的映射
  • 处理命名差异问题
  1. SQL代码复用
   <include refid="baseUserColumns"/><include refid="deptColumns"/> 
  • 统一管理公共字段
  • 修改时只需改动一处

5. 执行效果

当调用selectUserWithStats方法查询用户 ID 时:

获取某个特定用户的基本信息及其最近3个月的订单活动情况

生成的SQL:

SELECT u.id AS user_id,u.username,u.create_time,d.dept_name AS department_name,(SELECT COUNT(*) FROM order o WHERE o.user_id = u.idAND o.order_time >= DATE_SUB(NOW(), INTERVAL 3 MONTH)) AS order_count
FROM user u
LEFT JOIN department d ON u.dept_id = d.id
WHERE u.id = #{id}

下面是对这段SQL子查询语句每一行的详细解释:

  (SELECT COUNT(*) FROM order o WHERE o.user_id = u.idAND o.order_time >= DATE_SUB(NOW(), INTERVAL 3 MONTH)) AS order_count
  • 这用于计算特定用户在过去3个月内生成的订单数量。它从order表(别名为o)中计数所有满足条件的记录:user_id与外部查询中的用户ID相匹配,且order_time在当前时间(NOW())起往前推3个月的时间范围内。结果被命名为order_count

查询结果映射:

UserDTO{userId=1001, username="张三", departmentName="技术部", orderCount=5, createTime=2023-01-15
}

6. 优化建议

  1. 性能优化:为order.user_idorder_time字段添加索引
  2. 子查询优化:大数据量时可改为LEFT JOIN查询
  3. 动态SQL:添加<if>条件实现动态字段控制
  4. 分页支持:添加LIMIT语句配合PageHelper插件

这个案例完整展示了复杂查询场景下,如何通过MyBatis的特性实现清晰、可维护的SQL编写。


http://www.dtcms.com/wzjs/289486.html

相关文章:

  • vfp网站开发简阳seo排名优化培训
  • 做网站提供服务器吗合肥seo搜索优化
  • 律师事务所网站建设方案免费seo公司
  • 一步步教做音乐网站百度官方网站入口
  • 柳州企业网站建设最新发布的最新
  • 江门h5模板建站打字赚钱平台 学生一单一结
  • 网站如何做抖音推广网络推广优化是干啥的
  • 自己做免流网站网站推广联盟
  • 扬州做企业网站建站平台有哪些
  • 建设信用卡购物网站谷歌搜索引擎镜像入口
  • 建设银行门户网站关键词搜索查询
  • 互动性网站沈阳关键词优化价格
  • wordpress主题know上海优化seo公司
  • 什么网站是专做代购的sem推广是什么意思
  • 开发一个网页系统需要多少钱网站seo综合查询
  • 线上推广策划方案范文seo难不难学
  • 福建做网站今天新闻
  • 杭州网站维护网站建设培训
  • 做企业平台网站成本篮网最新消息
  • 游戏网站开发实验报告网店运营公司
  • 政府网站信息化工程建设方案网站设计服务企业
  • 排名好的网站开发网站内容seo
  • 网站规划对网站建设起到温州网站快速排名
  • 免费建网站软件下载手机属于免费的网络营销方式
  • 建设网站的网站公司广告网站留电话不用验证码
  • python做后台开发移动网站百度网站怎么申请注册
  • 东莞网站建设乐云seo百度收录怎么查询
  • 免费的网络软件重庆网页优化seo公司
  • 本机可以做网站的服务器百度快照推广一年要多少钱
  • 这么制作自己的网站免费推广公司