xml地图|网站地图|网站标签 [设为首页] [加入收藏]

您的位置:亚洲必赢 > 计算机尝试 > Mybatis实现Mysql分页数据查询的过程详解,Mybatis实

Mybatis实现Mysql分页数据查询的过程详解,Mybatis实

发布时间:2019-05-30 21:21编辑:计算机尝试浏览(109)

    前言

      周末这天手痒,正好没事干,想着写3个分页的例子出来给大家分享一下。

    看了网络海人民广播广播台大S(Barbie Hsu)pring Spring MVC Mybatis整合案例,基本都是基于Eclipse的,但现行反革命外界公司基本都在用英特尔lij IDEA了,所以结合所学知识,本身做了个总计,有不足之处招待指正。

    正文是对慕课英特网"搞定SSM开采"路线的泛滥成灾课程的下结论,详细的体系文档和科目总计放在github上了.点击查看

    因为这段日子没什么事,所以想着写五个分页的例证出来给大家分享一下。那一个案例分前端和后台两有个别,前端采取面向对象的不二等秘书籍写的,里面用到了1部分回调函数和事件代理,风趣味的相恋的人能够研讨一下。后台的兑现技术是将分页Pager作为3个实体对象放置domain层,当前页、单页数据量、当前页开始数、当前页截至数、总的数量量条数、总页数都作为成员属性放到实体类里面。

      这几个案例分前端和后台两有个别,前端选择面向对象的法子写的,里面用到了1部分回调函数和事件代理,风乐趣的爱侣能够钻探一下。后台的兑现才具是将分页Pager作为三个实体对象放置domain层,当前页、单页数据量、当前页开头数、当前页截止数、总量据条数、总页数都作为成员属性放到实体类里面。

    英特尔lij IDEA的大多操作办法与习于旧贯与Eclipse差距不小,所以很轻易走入误区。间接上操作吧。

    什么样是秒杀业务

    网址贩卖某制品时,规定在某些日期起始贩卖限量的出品,最交口称赞的诸如HUAWEI的开售;这种状态下,大概有诸多用户对同样产品在同时请求购买,并发数特别高,所以对数据库和网络的规划要求比较高.

    先前项目数据库用的是oracle,sql语句的写法会从当前页起初数到当前页结束数查询数据。刚刚在那纠结了非常短日子,查询到的多寡展示数量延续有偏差,后来发掘mysql的语句limit用的是当前页开头数到查询的条数,the fuck,作者还从来认为它也是到当前页甘休数呢。上面话十分少说了,来壹块探访详细的兑现过程吧:

      在此之前项目数据库用的是oracle,sql语句的写法会从当前页开头数到当前页甘休数查询数据。刚刚在这纠结了很短日子,查询到的数目体现数量延续有错误,后来开掘mysql的语句limit用的是当前页初始数到查询的条数,the fuck,小编还一贯以为它也是到当前页甘休数呢。

    1、基本概念

    秒杀系统的业务深入分析

    秒杀系统最入眼的片段是对仓库储存的拜访与修改,恐怕存在同期对数据库里的同一字段大量的拜会,怎么着确认保障查询的年月比较短,让尽大概多的用户尽快访问,是此类专门的工作的关键.

    先是步,搭建这些小案例,引进spring和mybtis的jar包,配置相应的安插文件:

      首先步,搭建这些小案例,引进spring和mybtis的jar包,配置相应的配置文件:

    1.1、Spring

    分层

    • Dao层: 数据层,首要是对数码的拜访;
    • Service层: 业务层,封装主要的事体逻辑
      • Mybatis实现Mysql分页数据查询的过程详解,Mybatis实现的Mysql分页数据查询。exception层: 定义全部exception
    • Web层: 体现给用用户,即前台页面

    瞩目要多写注释
    ***

    图片 1  

      图片 2

    Spring是二个开源框架,Spring是于200三 年兴起的2个轻量级的Java 开拓框架,由Rod Johnson 在其小说Expert One-On-One J二EE Development and Design中阐释的1部分思想和原型衍生而来。它是为着化解集团应用开拓的复杂而创办的。Spring使用基本的JavaBean来成功之前只恐怕由EJB完毕的作业。可是,Spring的用途不仅只限于服务器端的开荒。从轻巧性、可测试性和松耦合的角度来讲,任何Java应用都足以从Spring中收益。 简单的话,Spring是2个轻量级的支配反转(IoC)和面向切面(AOP)的容器框架。

    Dao层:

    1. 利用sql创造连锁的数据库和表;
    2. 始建实体,一般对应数据库的一张表;
    3. 创制Dao层接口,定义预先定义的办法;
    4. 利用Mybatis达成Dao接口,一般的话使用Mapper中的namespace对应到对招待口,Mybatis会自动创设其达成类;
      [mapper namespace][resultMap]
      [seelct id]
      具体可参看多种文档中有关mybatis的下结论
    5. 写好Mybatis的xml配置文件,启用Mybatis的作用:
      mybatis-config.xml的基本配置:

       <configuration>
      <!-- 配置全局属性 -->  
      <settings>  
          <!-- 使用jdbc的getGeneratedKeys获取数据库自增主键   -->
          <setting name="useGeneratedKeys" value="true"/>
          <!-- 使用列别名替换列名 -->
          <setting name="useColumnLabel" value="true"/>
          <!-- 开启驼峰命名转换  下划线命名到驼峰命名的转换-->
          <setting name="mapUnderscoreToCamelCase" value="true"/>     
      </settings>
      </configuration>
      

    (以下序号应当从六上马)

    1. Spring整合Mybatis:spring-dao.xml
      1. 引入property文件;
      2. 创立数量源-一般是c三p0
      3. SqlSessionFactory的配置(属性:连接池,布署文件-全局文件钦命*)
      4. 布署扫描接口,钦定举目四望哪些包下的Dao接口
    2. 单元测试

    其次步,前端页面和多少的拍卖:

      第3步,前端页面和数指标管理:

    1.2、SpringMVC

    Service层:

    页面布局极粗略。小编将table和pager单独作为对象来管理,各自管理各自该干的业务,做到了很好的卷入管理。个人感觉那七个js和java的类很相似。

      页面布局很简短。作者将table和pager单独作为目的来处理,各自处理各自该干的业务,做到了很好的包裹处理。个人认为那七个js和java的类很相像。

    Spring MVC属于SpringFrameWork的持续产品,已经融入在Spring Web Flow里面。Spring MVC 分离了调整器、模型对象、分派器以及管理程序对象的角色,这种分离让它们更易于进行定制。

    一.Service层关怀业务怎么得以实现,一同首级应该设计好

    从"使用者"的角度设计接口:

    • 艺术定义粒度
    • 参数要好管理
    • 回到类型
    • 写好注释

    别的的地点都以根据平常分页的流水生产线走的,话相当的少说,看看代码吧。 

      其它的地点都以遵从常规分页的流程走的,话非常少说,看看代码吧。 

    1.3、MyBatis

    贰.业务代码,爱咋写咋写,按等级次序就能够
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
     <head>
     <style>
      .hide{display:none}
      .myPager{height:40px;border-bottom:1px solid #eee;}
     .myPager .pagerRow{width:100%;float:left;height:30px;margin-top:10px;}
     .myPager .showPage{width:100%;float:left;height:30px;margin-top:10px;text-align: left;}
     .myPager .showPage .numDiv{display:inline-block;}
     .myPager .showPage .toBtn{color:#fff;font-size:20px;}
     .myPager .showPage .disable{background-color: #c9c9c9;}
     .myPager .showPage .nable{background-color:rgb(10%,65%,85%);cursor:default;}
     .myPager .showPage .numDiv .disable{color:#777;}
     .myPager .showPage .numDiv .nable{color:#fff;}
     .myPager .showPage .cursor_default{cursor:default;}
     .myPager .showPage .cursor_pointer{cursor:pointer;}
     .showPage span{display: inline-block;padding: 0px 0px 1px 1px;margin-left:5px;
      width: 21px;height: 21px;border-radius: 12px;line-height: 22px;font-size: 12px;
      text-align: center;overflow: hidden;}
     </style>
     <script type="text/javascript" src="<c:url value='/res/jquery.js'/>"></script>
     <script type="text/javascript" src="<c:url value='/res/MyPager.js'/>"></script>
     <script type="text/javascript" src="<c:url value='/res/MyTable.js'/>"></script>
     <script>
     $(function(){
      var $btn = $(".sub_btn");
      $btn.click(function(){
      $(this).addClass("hide");
      new MyTable("employeeTab","<c:url value='/mam/queryListPage'/>");
      })
     })
     </script>
     </head>
    
     <body>
     <div class="wrap">
      <table class="employeeTab">
      <tr>
       <th>ID</th>
       <th>姓名</th>
       <th>年龄</th>
       <th>性别</th>
      </tr>
      </table>
      <button class="sub_btn">显示数据</button>
     </div>
     </body>
    </html>
    
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
          <style>
              .hide{display:none}
              .myPager{height:40px;border-bottom:1px solid #eee;}
            .myPager .pagerRow{width:100%;float:left;height:30px;margin-top:10px;}
            .myPager .showPage{width:100%;float:left;height:30px;margin-top:10px;text-align: left;}
            .myPager .showPage .numDiv{display:inline-block;}
            .myPager .showPage .toBtn{color:#fff;font-size:20px;}
            .myPager .showPage .disable{background-color: #c9c9c9;}
            .myPager .showPage .nable{background-color:rgb(10%,65%,85%);cursor:default;}
            .myPager .showPage .numDiv .disable{color:#777;}
            .myPager .showPage .numDiv .nable{color:#fff;}
            .myPager .showPage .cursor_default{cursor:default;}
            .myPager .showPage .cursor_pointer{cursor:pointer;}
            .showPage span{display: inline-block;padding: 0px 0px 1px 1px;margin-left:5px;
                width: 21px;height: 21px;border-radius: 12px;line-height: 22px;font-size: 12px;
                text-align: center;overflow: hidden;}
          </style>
          <script type="text/javascript" src="<c:url value='/res/jquery.js'/>"></script>
          <script type="text/javascript" src="<c:url value='/res/MyPager.js'/>"></script>
          <script type="text/javascript" src="<c:url value='/res/MyTable.js'/>"></script>
        <script>
            $(function(){
                var $btn = $(".sub_btn");
                $btn.click(function(){
                    $(this).addClass("hide");
                    new MyTable("employeeTab","<c:url value='/mam/queryListPage'/>");
                })
            })
        </script>
      </head>
    
      <body>
          <div class="wrap">
              <table class="employeeTab">
                  <tr>
                      <th>ID</th>
                      <th>姓名</th>
                      <th>年龄</th>
                      <th>性别</th>
                  </tr>
              </table>
              <button class="sub_btn">显示数据</button>
          </div>
      </body>
    </html>
    

    MyBatis 本是apache的一个开源项目iBatis, 20十年那么些类别由apache software foundation 迁移到了google code,并且改名字为MyBatis 。MyBatis是贰个基于Java的长久层框架。iBATIS提供的长久层框架包含SQL Maps和Data Access Objects(DAO)MyBatis 化解了大概具备的JDBC代码和参数的手工业安装以及结果集的探究。MyBatis 使用简易的 XML或表明用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

    3.由此Spring IOC管理全部的service层代码

    动用注脚的话,@瑟维斯,@Bean,@Autowired等评释完毕bean的托管和依赖注入
    以下为Spring表明开启的言传身教育和文化件.

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/shcema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd
            http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
            http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx.xsd">
            <!-- 扫描service报下所有使用注解的类型 -->
            <context:component-scan base-package="com.ct.maven.SecKill.service"></context:component-scan>
    
            <!-- 配置事务管理器 -->
            <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
                <!-- 注入数据库连接池 -->
                <property name="dataSource" ref="dataSource"></property>
            </bean>
    
            <tx:annotation-driven transaction-manager="transactionManager"/>
    </beans>
    

    页面引入了Mypager.js和MyTable.js,Mypager那套东西是包装的可比好的,有意思味的意中人能够直接拿去用。今后插件满天飞,本身造的车轮肯定会没有繁多,可是此地涉及到js诸多基础的知识点,初学的爱侣能够看成学习参谋使用;

      页面引进了Mypager.js和MyTable.js,Mypager那套东西是包裹的相比较好的,有意思味的意中人能够一向拿去用。未来插件满天飞,自身造的车轱辘肯定会逊色许多,但是这里提到到js多数基础的知识点,初学的恋人能够用作学习参谋使用;

    第二,先来吧基本依附pom.xml计划好,大家注意那亟需系统一点!

    4.利用集成测试

    本文由亚洲必赢发布于计算机尝试,转载请注明出处:Mybatis实现Mysql分页数据查询的过程详解,Mybatis实

    关键词: 编程语言 java

上一篇:Java简单介绍及Java生态,String的简单介绍

下一篇:没有了