SpringBoot整合业务流程01

本文介绍了如何在SpringBoot中整合业务流程,包括定义实体对象实现ORM映射,定义Dao接口及Mapper文件,编写SQL语句。同时,详细阐述了Service接口、实现类以及Controller的处理,强调了异常处理和服务层数据封装。最后,提到了客户端的日志分页展示。
摘要由CSDN通过智能技术生成

管理列表数据呈现

1.1定义实体对象(POJO)封装从数据库查询的数据实现ORM映射

//构建与数据库表对应的实体类型

/*	
类名 SysLog (实现序列化接口,并定义序列化id)
属性 与表(sys_Logs)中字段有对应关系
方法 set/get/toString
*/
public class SysLog  implements Serializable{
   
	private static final long serialVersionUID = -6585641359032857459L;
	private Integer id;//用户名
	private String username;//用户操作
	...

通过此对象除了可以封装从数据库查询的数据,还可以封装客户端请求数据,实现层与层之间数据的传递

1.2定义Dao接口实现,并创建接口并定义相关方法


@Mapper //告诉mybatis 框架   此接口实现类有底层实现
public interface SysLogDao {
   
	/**
	 * @param username  查询条件(例如查询哪个用户的日志信息)
	 * @param startIndex 当前页的起始位置
	 * @param pageSize 当前页的页面大小
	 * @return 当前页的日志记录信息
	 */
	//数据库中每条日志信息封装到一个SysLog对象中
	List<SysLog> findPageObjects(
		@Param("username")	String username,
		@Param("startIndex")Integer startIndex,
		@Param("pageSize")	Integer pageSize);

	
	/**
	 * @param username 查询条件(例如查询哪个用户的日志信息)
	 * @return 总记录数(基于这个结果可以计算总页数)
	 * 说明:假如如下方法没有使用注解修饰,在基于名字进行查询
	 * 时候会出现There is no getter for property named
	 * 'username' in 'class java.lang.String'
	 */

	int getRowCount(@Param("username")  String username);
}
  1. 当DAO中方法参数多余一个时尽量使用@Param注解进行修饰并指定名字,然后再Mapper文件中便可以通过类似#{username}方式进行获取,否则只能通过#{arg0},#{arg1}或者#{param1},#{param2}等方式进行获取。
  2. 当DAO方法中的参数应用在动态SQL中时无论多少个参数,尽量使用@Param注解进行修饰并定义。

1.3Mapper.xml映射文件编写sql语句

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cy.pj.sys.dao.SysLogDao">
    <select id="findPageObjects"
            resultType="com.cy.pj.sys.entity.SysLog">
         select *
         from sys_Logs
         <include refid="queryWhereId"/>
order by createdTime desc
         limit #{
   startIndex},#{
   pageSize}    
</select>
    
    <select id="getRowCount"
            resultType="int">
          select count(*) 
          from sys_Logs
          <include refid="queryWhereId"/>
    </select>
    <!-- 借助此元素对共性数据进行提取 -->
    <sql id="queryWhereId">
          <where>
            <if test="username!=null and username!=''">
               username like concat("%",#{
   username},"%")
            </if>
          </where>
    </sql>
</mapper>

2.1Service接口以及实现类类

Service接口:

public interface SysLogService {
   

	 PageObject<SysLog> findPageObjects(
			 String username,
			 Integer pageCurrent);
}

PageObject 封装查询后的数据

package com.cy.pj.common.vo;
...
//类泛型
public class PageObject
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值