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

基于springboot和ajax的简单项目 02 代码部分实现,xml文件sql语句优化 (中)

上次说到了log/log_list.html的doGetObjects(),其中有doFindPageObjects()方法。
在这里插入图片描述
找到全部的日志对象,并且输出到div上。这里是后台的代码。
01.pojo对象,这里需要序列化保存。序列化的作用是保存对象到内存缓存中,或者是文件中,安全保存。

这里需要implement Serializable接口,并且在类中去添加uid。
在这里插入图片描述
选中选项,使用就可以自动有uid

02.写dao层代码
注意:

当DAO中方法参数多余一个时尽量使用@Param注解进行修饰并指定名字,然后再Mapper文件中便可以通过类似#{username}方式进行获取,否则只能通过#{arg0},#{arg1}或者#{param1},#{param2}等方式进行获取。

当DAO方法中的参数应用在动态SQL中时无论多少个参数,尽量使用@Param注解进行修饰并定义。

@Param的作用范围只能是被修饰的sql语句。
其中的代码是:

/*** @param username 查询条件(例如查询哪个用户的日志信息)*  @return 总记录数(基于这个结果可以计算总页数)*/Long getrownum( @Param("username") String username);/*** @param username  查询条件(例如查询哪个用户的日志信息)* @param startIndex 当前页的起始位置* @param pageSize 当前页的页面大小* @return 当前页的日志记录信息* 数据库中每条日志信息封装到一个SysLog对象中*/List<sysLog> fingall(  @Param("username")String username, @Param("startIndex")Long startIndex, @Param("pageSize")int pageSize);

03.mapper.xml映射文件。这里存放的是sql语句

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cy.dao.sysLogDao"><select id="getrownum" resultType="Long">select count(*) from sys_logs<where><if test="username!=null and username=!''">username like concat("%",#{username},"%")</if></where></select><select id="fingall" resultType="com.cy.pojo.sysLog">select * from sys_logs<where><if test="username!=null and username=!''">username like concat("%",#{username},"%")</if></where>order by createdTime desclimit #{startIndex},#{pageSize}</select>
</mapper>

优化xml文件,sql语句中有重复的部分:

 <where><if test="username!=null and username=!''">username like concat("%",#{username},"%")</if></where>

可以使用标签sql来进行修饰:

  <sql id="queryWhereId">from sys_logs<where><if test="username!=null and username!=''">username like concat("%",#{username},"%")</if></where></sql>

sql标签需要用id来识别:

进一步优化sql语句:
用include标签进行插入操作

 <select id="getRowCount"resultType="int">select count(*)<include refid="queryWhereId"/></select><select id="findPageObjects"resultType="com.cy.pj.sys.entity.SysLog">select *<include refid="queryWhereId"/>
order by createdTime desclimit #{startIndex},#{pageSize}    
</select>
http://www.lryc.cn/news/60286.html

相关文章:

  • LNMP架构部署
  • SpringBoot 防护XSS攻击
  • iOS 吸顶效果
  • 文本翻译免费软件-word免费翻译软件
  • redis 主从模式、哨兵模式、cluster模式的区别
  • SDL(2)-加载图片
  • 指针数组和数组指针
  • 程序员最常见的谎言
  • hypothesis testing假设检验
  • ChatGPT扩展系列之解决ChatGPT 被大面积封号的终极方案
  • 如何在DevOps中进行API生命周期管理?
  • 嵌套列表,与摩尔投票进阶
  • ChatGPT原理解释
  • 【配电网故障重构SOP】基于二阶锥松弛的加光伏风机储能进行的配电网故障处理和重构【考虑最优潮流】(Matlab代码实现)
  • ajax 的入门案例
  • Flutter TextField 交互实例 —— 新手礼包
  • 折叠屏:手机厂商的「续命良药」
  • RabbitMQ 保证消息不丢失的几种手段
  • nginx配置
  • linux从入门到精通 第一章centos7里tomcat,jdk,httpd,mysql57,mysql80的安装
  • ChatGPT 速通手册——开源社区的进展
  • string类
  • LLM总结(持续更新中)
  • 【GPT4】微软 GPT-4 测试报告(2)多模态与跨学科的组合
  • Celery使用教程完整版【从安装到启用】
  • 【Java技术指南】「JPA编程专题」让你不再对JPA技术中的“持久化型注解”感到陌生了
  • Java基础:IO流有哪些,各有什么特点和功能
  • MySQL、PostgreSQL、Oracle、SQL Server数据库触发器实现同步数据
  • 因为我没交周报,leader要罚款200元,怎么给他挖坑?能以敲诈勒索罪告他吗?...
  • java跨域问题