mybatis动态sql和分页

图像的低频,中频,高频信息含义? 看很多图像处理的博文,都会说图像的主要成分是低频信息,它形成了图像的基本灰度等级,对图像结构的决定作用较小;中频信息决定了图像的基本结构,形成了图像的主要边缘结构;高频信息形成了图像的边缘细节,是在中频信息上对图像内容的进一步强化。我有点纳闷,图像不就是一堆像素点构成的三维矩阵吗?跟频率有啥关系! 针对这个问题,又查了不少网文,解释的也都各不相同。例如, “初学的时候,你可以把高中低这个度量图像上相邻点的灰度差大小对等起来”。 “感性上来讲,图像越杂乱的部分,频率越高... 阅读详情

一、动态SQL

if、foreach

if

foreach

1.BookMapper.xml中添加foreach标签

  <select id="selectBooksIn" parameterType="java.util.List" resultType="com.zw.model.Book">
    select * from t_mvc_book where bid in
    <foreach close=")" collection="bookIds" item="bid" open="(" separator=",">
      #{bid}
    </foreach>
  </select>
      collection:集合的变量
      open自动补充的前缀
      close自动补充的后缀
      separator分隔符
      item 集合变量当前元素的引用

2.在BookMapper.java中调用dao层

List<Book> selectBooksIn(@Param("bookIds") List bookIds);

3.BookService.java

List<Book> selectBooksIn(List bookIds);

4.实现接口方法        BookServiceImpl.java

public int updateByPrimaryKey(Book record) {
    return bookMapper.updateByPrimaryKey(record);
}

5.测试        BookServiceImplTest.java

public void testselectBooksIn() {
    System.out.println("mybatis中的foreach标签....");
    List<Book> books= this.bookService.selectBooksIn(Arrays.asList(new Integer[]{24,28,29}));
    books.forEach(System.out::println);
}

运行结果:

二、模糊查询

#、$、concat

#{...}        除了做模糊查询不用 其他都用

${...}        做通用的业务功能增删改查的时候选用;

Concat        在不考虑做通用的业务功能增删改查的时候选用;

1.在BookMapper.xml中添加方法

  <select id="selectBooksLike1" resultType="com.zw.model.Book" parameterType="java.lang.String">
    select * from t_mvc_book where bname like #{bname}
  </select>
  <select id="selectBooksLike2" resultType="com.zw.model.Book" parameterType="java.lang.String">
    select * from t_mvc_book where bname like '${bname}'
  </select>
  <select id="selectBooksLike3" resultType="com.zw.model.Book" parameterType="java.lang.String">
    select * from t_mvc_book where bname like concat(concat('%',#{bname}),'%')
  </select>

2.BookMapper.java中调用dao层

    List<Book> selectBooksLike1(@Param("bname") String bname);
    List<Book> selectBooksLike2(@Param("bname") String bname);
    List<Book> selectBooksLike3(@Param("bname") String bname);

3.测试

3.1BookService.java

    List<Book> selectBooksLike1(@Param("bname") String bname);
    List<Book> selectBooksLike2(@Param("bname") String bname);
    List<Book> selectBooksLike3(@Param("bname") String bname);

3.2.BookServiceImpl.java        实现接口方法

    @Override
    public List<Book> selectBooksLike1(String bname) {
        return bookMapper.selectBooksLike1(bname);
    }

    @Override
    public List<Book> selectBooksLike2(String bname) {
        return bookMapper.selectBooksLike2(bname);
    }

    @Override
    public List<Book> selectBooksLike3(String bname) {
        return bookMapper.selectBooksLike3(bname);
    }

3.3测试类

    public void testselectBooksLike1() {
        System.out.println("mybatis模糊查询#与$....");
        List<Book> books= this.bookService.selectBooksLike1("%圣墟%");
        books.forEach(System.out::println);
    }

    public void testselectBooksLike2() {
        System.out.println("mybatis模糊查询#与$....");
        List<Book> books= this.bookService.selectBooksLike2("%圣墟%");
        books.forEach(System.out::println);
    }

    public void testselectBooksLike3() {
        System.out.println("mybatis模糊查询#与$....");
        List<Book> books= this.bookService.selectBooksLike3("圣墟");
        books.forEach(System.out::println);
    }

运行结果:

 

#与$符号的区别总结:

#{...}自带引号,${...}有sql注入的风险

在项目中${...}虽然有注入的风险但一般会用来做mybatis的动态列,动态列在开发中可以减少dao层及mapper.xml的代码编写

三、查询返回结果集的处理

resultMap:适合使用返回值是自定义实体类的情况

        使用resultMap返回自定义类型集合

resultType:适合使用返回值的数据类型是非自定义的,即jdk的提供的类型

       1.  使用resultType返回List<T>

       2. 使用resultType返回单个对象

       3. 使用resultType返回List<Map>,适用于多表查询返回结果集

       4. 使用resultType返回Map<String,Object>,适用于多表查询返回单个结果集

1.BookMapper.xml增加结果集的处理

  <select id="list1" resultMap="BaseResultMap">
    select * from t_mvc_book
  </select>
  <select id="list2" resultType="com.zw.model.Book">
    select * from t_mvc_book
  </select>
  <select id="list3" resultType="com.zw.model.Book" parameterType="com.zw.vo.BookVo">
    select * from t_mvc_book where bid in
    <foreach collection="bookIds" open="(" close=")" separator="," item="bid">
      #{bid}
    </foreach>
  </select>
  <select id="list4" resultType="java.util.Map">
    select * from t_mvc_book
  </select>
  <select id="list5" resultType="java.util.Map" parameterType="java.util.Map">
    select * from t_mvc_book where bid = #{bid}
  </select>

  <select id="listPager" resultType="java.util.Map" parameterType="java.util.Map">
    select * from t_mvc_book where bname like concat(concat('%',#{bname}),'%')
  </select>

新建BookVo.java

package com.zw.vo;

import com.zw.model.Book;

import java.util.List;

public class BookVo  extends Book {
    private List<Integer> bookIds;

    public List<Integer> getBookIds() {
        return bookIds;
    }

    public void setBookIds(List<Integer> bookIds) {
        this.bookIds = bookIds;
    }
}

2.dao层调用

BookMapper.java

/**
     * 使用resultMap返回自定义类型集合
     * @return
     */
    List<Book> list1();

    /**
     * 使用resultType返回List<T>
     * @return
     */
    List<Book> list2();

    /**
     * 使用resultType返回单个对象
     * @return
     */
    Book list3(BookVo bookVo);

    /**
     * 使用resultType返回List<Map>,适用于多表查询返回结果集
     * @return
     */
    List<Map> list4();

    /**
     * 使用resultType返回Map<String,Object>,适用于多表查询返回单个结果集
     * @return
     */
    Map list5(Map book);

3.测试

3.1 BookService.java

/**
     * 使用resultMap返回自定义类型集合
     * @return
     */
    List<Book> list1();

    /**
     * 使用resultType返回List<T>
     * @return
     */
    List<Book> list2();

    /**
     * 使用resultType返回单个对象
     * @return
     */
    Book list3(BookVo bookVo);

    /**
     * 使用resultType返回List<Map>,适用于多表查询返回结果集
     * @return
     */
    List<Map> list4();

    /**
     * 使用resultType返回Map<String,Object>,适用于多表查询返回单个结果集
     * @return
     */
    Map list5(Map book);

3.2 BookServiceImpl

    @Override
    public List<Book> list1() {
        return bookMapper.list1();
    }

    @Override
    public List<Book> list2() {
        return bookMapper.list2();
    }

    @Override
    public Book list3(BookVo bookVo) {
        return bookMapper.list3(bookVo);
    }

    @Override
    public List<Map> list4() {
        return bookMapper.list4();
    }

    @Override
    public Map list5(Map book) {
        return bookMapper.list5(book);
    }

3.3 BookServiceImplTest

    public void testlist1() {
        System.out.println("五种返回类型配置");
        List<Book> books= this.bookService.list1();
        books.forEach(System.out::println);
    }

    public void testlist2() {
        System.out.println("五种返回类型配置");
        List<Book> books= this.bookService.list2();
        books.forEach(System.out::println);
    }

    public void testlist3() {
        System.out.println("五种返回类型配置");
        BookVo bookVo=new BookVo();
        bookVo.setBookIds(Arrays.asList(new Integer[]{29}));
        System.out.println(this.bookService.list3(bookVo));
    }

    public void testlist4() {
        System.out.println("五种返回类型配置");
        List<Map> books= this.bookService.list4();
        books.forEach(System.out::println);
    }

    public void testlist5() {
        System.out.println("五种返回类型配置");
        Map map=new HashMap();
        map.put("bid",29);
        Map m= this.bookService.list5(map);
        System.out.println(m);
    }

运行结果:

①resultMap返回自定义类型集合

 ②resultType返回List<T>

 ③resultType返回单个对象

④  resultType返回List<Map>

⑤resultType返回Map<String,Object>

结论1:

resultMap:多表查询会用

resultType:单表查询

结论2:

List<T></>:单表

List<Map>:多表

四、mybatis分页

自定义MVC

        baseDao是通过数据库的limit关键字完成的

        limit        起始下标,偏移量

        原始sql

        查询符合条件的记录数countSql        select count(1) from (sql) t

        查询符合条件某一页的数据pageSQL

Hibernate

        分页是自带的

        原始hql

        查询符合条件的记录数:select count(1) from hql

        squery.setFirstResult(pageBean.getStartIndex());

        query.setMaxResults(pageBean.getRows());

mybatis

        引入第三方插件pom依赖

        mybatis是借用了拦截器引入第三方完成分页的,配置拦截器

        在对应需要分页的代码中国加入相应的代码

1.导入pom依赖

        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.1.2</version>
        </dependency>

2.Mybatis.cfg.xml配置拦截器

<plugins>
    <!-- 配置分页插件PageHelper, 4.0.0以后的版本支持自动识别使用的数据库 -->
    <plugin interceptor="com.github.pagehelper.PageInterceptor">
    </plugin>
</plugins>

报错:元素类型的内容必须匹配

 解决方法:需按顺序放

3.BookMapper.xml增加分页

  <select id="listPager" resultType="java.util.Map" parameterType="java.util.Map">
    select * from t_mvc_book where bname like concat(concat('%',#{bname}),'%')
  </select>

4、dao层调用

BookMapper.java

List<Map> listPager(Map map);

5.测试

5.1导入PageBean、StringUtils 

PageBean

package com.zw.util;

import java.io.Serializable;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

public class PageBean implements Serializable {

	private static final long serialVersionUID = 2422581023658455731L;

	//页码
	private int page=1;
	//每页显示记录数
	private int rows=10;
	//总记录数
	private int total=0;
	//是否分页
	private boolean isPagination=true;
	//上一次的请求路径
	private String url;
	//获取所有的请求参数
	private Map<String,String[]> map;
	
	public PageBean() {
		super();
	}
	
	//设置请求参数
	public void setRequest(HttpServletRequest req) {
		String page=req.getParameter("page");
		String rows=req.getParameter("rows");
		String pagination=req.getParameter("pagination");
		this.setPage(page);
		this.setRows(rows);
		this.setPagination(pagination);
		this.url=req.getContextPath()+req.getServletPath();
		this.map=req.getParameterMap();
	}
	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public Map<String, String[]> getMap() {
		return map;
	}

	public void setMap(Map<String, String[]> map) {
		this.map = map;
	}

	public int getPage() {
		return page;
	}

	public void setPage(int page) {
		this.page = page;
	}
	
	public void setPage(String page) {
		if(null!=page&&!"".equals(page.trim()))
			this.page = Integer.parseInt(page);
	}

	public int getRows() {
		return rows;
	}

	public void setRows(int rows) {
		this.rows = rows;
	}
	
	public void setRows(String rows) {
		if(null!=rows&&!"".equals(rows.trim()))
			this.rows = Integer.parseInt(rows);
	}

	public int getTotal() {
		return total;
	}

	public void setTotal(int total) {
		this.total = total;
	}
	
	public void setTotal(String total) {
		this.total = Integer.parseInt(total);
	}

	public boolean isPagination() {
		return isPagination;
	}
	
	public void setPagination(boolean isPagination) {
		this.isPagination = isPagination;
	}
	
	public void setPagination(String isPagination) {
		if(null!=isPagination&&!"".equals(isPagination.trim()))
			this.isPagination = Boolean.parseBoolean(isPagination);
	}
	
	/**
	 * 获取分页起始标记位置
	 * @return
	 */
	public int getStartIndex() {
		//(当前页码-1)*显示记录数
		return (this.getPage()-1)*this.rows;
	}
	
	/**
	 * 末页
	 * @return
	 */
	public int getMaxPage() {
		int totalpage=this.total/this.rows;
		if(this.total%this.rows!=0)
			totalpage++;
		return totalpage;
	}
	
	/**
	 * 下一页
	 * @return
	 */
	public int getNextPage() {
		int nextPage=this.page+1;
		if(this.page>=this.getMaxPage())
			nextPage=this.getMaxPage();
		return nextPage;
	}
	
	/**
	 * 上一页
	 * @return
	 */
	public int getPreivousPage() {
		int previousPage=this.page-1;
		if(previousPage<1)
			previousPage=1;
		return previousPage;
	}

	@Override
	public String toString() {
		return "PageBean [page=" + page + ", rows=" + rows + ", total=" + total + ", isPagination=" + isPagination
				+ "]";
	}
}

StringUtils

package com.zw.util;

public class StringUtils {
    // 私有的构造方法,保护此类不能在外部实例化
    private StringUtils() {
    }
    /**
     * 如果字符串等于null或去空格后等于"",则返回true,否则返回false
     *
     * @param s
     * @return
     */
    public static boolean isBlank(String s) {
        boolean b = false;
        if (null == s || s.trim().equals("")) {
            b = true;
        }
        return b;
    }
    /**
     * 如果字符串不等于null或去空格后不等于"",则返回true,否则返回false
     *
     * @param s
     * @return
     */
    public static boolean isNotBlank(String s) {
        return !isBlank(s);
    }
}

5.2BookService.java

List<Map> listPager(@Param("bname") Map map, PageBean pageBean);

5.3BookServiceImpl.java

    @Override
    public List<Map> listPager(Map map, PageBean pageBean) {
        if(pageBean != null && pageBean.isPagination()){
            PageHelper.startPage(pageBean.getPage(),pageBean.getRows());
        }
        List<Map> list = bookMapper.listPager(map);
        if(pageBean != null && pageBean.isPagination()){
            PageInfo pageInfo = new PageInfo(list);
            System.out.println("页码:"+pageInfo.getPageNum());
            System.out.println("页大小:"+pageInfo.getPageSize());
            System.out.println("总记录:"+pageInfo.getTotal());
            pageBean.setTotal(pageInfo.getTotal()+"");
        }
        return list;
    }

5.4BookServiceImplTest.java

    public void testlistPager() {
        System.out.println("分页");
        Map map=new HashMap();
        map.put("bname","圣墟");
        List<Map> ms= this.bookService.listPager(map, new PageBean());
        ms.forEach(System.out::println);
    }

运行结果:

 五、特殊字符的处理

less than        小于

grant than        大于

1.BookMapper.xml添加特殊字符处理

  <select id="list6" resultType="com.zw.model.Book" parameterType="com.zw.vo.BookVo">
    select * from t_mvc_book
    <where>
      <if test="null != min and min != ''">
        <![CDATA[  and #{min} < price ]]>
      </if>
      <if test="null != max and max != ''">
        <![CDATA[ and #{max} > price ]]>
      </if>
    </where>
  </select>

  <select id="list7" resultType="com.zw.model.Book" parameterType="com.zw.vo.BookVo">
    select * from t_mvc_book
    <where>
      <if test="null != min and min != ''">
        and #{min} &lt; price
      </if>
      <if test="null != max and max != ''">
        and #{max} &gt; price
      </if>
    </where>
  </select>

2.dao层调用

BookMapper.java

    /**
     * 处理特殊字符
     * @param bookVo
     * @return
     */
    List<Book> list6(BookVo bookVo);


    /**
     * 处理特殊字符
     * @param bookVo
     * @return
     */
    List<Book> list7(BookVo bookVo);

3.测试

3.1 BookVo

    private float min;
    private float max;

    public float getMin() {
        return min;
    }

    public void setMin(float min) {
        this.min = min;
    }

    public float getMax() {
        return max;
    }

    public void setMax(float max) {
        this.max = max;
    }

3.2 BookService.jva

    /**
     * 处理特殊字符
     * @param bookVo
     * @return
     */
    List<Book>  list6(BookVo bookVo);
    
    /**
     * 处理特殊字符
     * @param bookVo
     * @return
     */
    List<Book>  list7(BookVo bookVo);

3.3 BookServiceImpl.java        实现接口方法

    @Override
    public  List<Book>  list6(BookVo bookVo){
        return bookMapper.list6(bookVo);
    }

    @Override
    public  List<Book>  list7(BookVo bookVo){
        return bookMapper.list7(bookVo);
    }

3.4 BookServiceImplTest.java

    public void testlist6() {
        System.out.println("五种返回类型配置");
        BookVo vo=new BookVo();
        vo.setMin(20f);
        vo.setMax(60f);
        List<Book> books= this.bookService.list6(vo);
        books.forEach(System.out::println);
    }

    public void testlist7() {
        System.out.println("五种返回类型配置");
        BookVo vo=new BookVo();
        vo.setMin(20f);
        vo.setMax(60f);
        List<Book> books= this.bookService.list7(vo);
        books.forEach(System.out::println);
    }

运行结果:


报错: 元素内容必须由格式正确的字符数据或标记组成

 

 

 

如何用Hugo Stack主题打造极简技术博客?3个必改配置与5个高级美化技巧 本文详细解析了如何深度定制Hugo Stack主题,打造个性化技术博客。文章提供了3个必改配置与5个高级美化技巧,涵盖字体美学、布局重构、代码块视觉强化及细节打磨,帮助开发者超越基础部署,实现从功能到美学的进阶,提升博客质感与用户体验。 阅读详情

相关推荐

ubuntu18.04安装Nvidia显卡驱动后黑屏及网络、蓝牙驱动消失的解决方案

ubuntu18.04安装Nvidia显卡驱动后黑屏及网络、蓝牙驱动消失的解决方案

weixin_40735291的博客 6585

mybatis mysql 分页插件_mybatis-pagination

MyBatis 分页插件mybatis-pagination 是一个简易的MyBatis物理分页插件,使用org.apache.ibatis.session.RowBounds及其子类作为分页参数,禁用MyBatis自带的内存分页分页原理简单来说就是通过拦截StatementHandler重写sql语句,实现数据库的物理分页如何使用分页插件单独使用 MyBatis若是单独使用 MyBatis ,...

weixin_34672875的博客 1158

一个完整的c#股票分析软件源码

完整的c#股票分析软件源码

qq_35600909的博客 4530

MyBatis分页

什么是分页(pagination) 例如,在数据库的某个表里有1000条数据,我们每次只显示100条数据,在第1页显示第0到第99条,在第2页显示第100到199条,依次类推,这就是分页分页可以分为物理分页逻辑分页。物理分页是利用sql自带的limit去实现的,本身查询出来的数据是就算分页好的;逻辑分页是先查出来,然后利用代码去取需要的部分 分页的意义 分页确实有效,但它一定会加大系统的复杂度,但可否不分页呢?如果数据量少的话当然可以.但是对于企业信息系统来说数据量不会限制在一个小范围内.如果不顾一切

m0_53698336的博客 246

关于mybatis在xml的写法(个人遗忘点)

关于mybatis在xml的写法(个人遗忘点)

copa的博客 2081

springboot整合mybatis拦截器分页

这份文档从构建一个键值数据库的关键架构入手,不仅带你建立起全局观,还帮你迅速抓住核心主线。除此之外,还会具体讲解数据结构、线程模型、网络框架、持久化、主从同步切片集群等,帮你搞懂底层原理。相信这对于所有层次的Redis使用者都是一份非常完美的教程了。你的支持,我的动力;祝各位前程似锦,offer不断!!!《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!。[外链图片转存中…(img-6hHelxui-1711824971097)]你的支持,我的动力;

2401_83916283的博客 685

Mybatis 使用总结

一.mybatis的PageHelper分页插件使用 https://blog.csdn.net/Orient_/article/details/80693573 https://www.cnblogs.com/QingXiaxu/p/8247164.html https://www.jianshu.com/p/458541192159 https://www.cnblogs.com/c...

csdn_hugo的博客 1030

Mybatis02动态sql分页

1.动态 SQLMyBatis 的强大特性之一。在 JDBC 或其它类似的框架中,开发人员通常需要手动拼接 SQL 语句。根据不同的条件拼接 SQL 语句是一件极其痛苦的工作。例如,拼接时要确保添加了必要的空格,还要注意去掉列表最后一个列名的逗号。而动态 SQL 恰好解决了这一问题,可以根据场景动态的构建查询。 2.动态SQL:code that is executed dynamically。 它一般是根据用户输入或外部条件动态组合的SQL语句块。 动态SQL能灵活的发挥SQL强大的功能、方便的解

全栈 1318

MyBatis动态sql分页

动态 SQL 通常写在mapper包下面的地址映射配置文件(.xml)中。根据条件的不同, SQL 语句也会随之动态的改变. MyBatis 中,提供了一组标签用于实现动态 SQL 动态SQL语句标签包括以下标签: 1、If标签 条件判断标签,通过判断参数取值来决定是否使用某个查询条件,基本用法如下: <select id="queryBookIf" resultType="mybatis01.model.Book"> select <include refid="Base_Co

CLa11111111的博客 762

mybatis动态sql分页

课程目标 mybatis动态sql 模糊查询 查询返回结果集的处理 分页查询 特殊字符处理 一.mybatis动态sql 首先在BookMapper.xml中添加forEach的标签

m0_52681702的博客 676

mybatis动态sql分页

一、mybatis动态SQL 1.if 使用if的动态SQL语句 BookMapper.xml <insert id="insert" parameterType="com.ltf.model.Book" > insert into t_mvc_book (bid, bname, price ) values (#{bid,jdbcType=INTEGER}, #{bname,jdbcType=VARCHAR}, #{price,jdbcType=REAL

小宝的宝呢的博客 1269

Mybatis动态sql分页

一、mybatis动态SQL 1.if 使用if的动态SQL语句,解决了修改需要传递所有列段的问题 BookMapper.xml <insert id="insertSelective" parameterType="com.zking.model.Book" > insert into t_mvc_book <trim prefix="(" suffix=")" suffixOverrides="," > <if test="bid !

weixin_56069070的博客 1757

Mybatis动态SQL分页

1.foreach的属性 Item、 Collection、open、splitrator(分隔符)、in(1,2,3,4,5) 2.模糊查询的三种方式 # $ concat 3.# $ 的区别 # 自带双引号'',$ 不带双引号'' # 能防止SQL与注入,$ 会有SQL的注入 $最大的作用,传入数据库列段,数据库表名,动态列的功能 4.ResultMap与ResultType ResultTpye返回实体类对象:对应单表 ResultMap会做Ma...

weixin_67450855的博客 745

MyBatis动态sql分页

目标: mybatis动态sql 模糊查询 查询返回结果集的处理 分页查询 特殊字符处理 一、mybatis动态sql 常用:If、foreach if标签解释: 以往所用的修改不传的值就为空,mybatis的if解决了它的漏洞,效率更好,单方面讲加了if条件的好一些. foreach: 1、BookMapper.xml增加foreach标签 <select id="selectBooksIn" resultType="com.mwy.model.Book" para..

qq_59025975的博客 1433

myBatis-关联关系

PageHelper插件实现分页的原理是根据使用不同的数据库,它会自动在执行的sql语句后面加所使用数据库对应的分页代码,比如mysql是limit、sqlserver是top、oracle是rownum。5).注意,动态sqlsql语句部分可以使用“>“”>=”,但是不能使用“.........

Livae的博客 419

项目总结: MyBatis-paginator实现分页

写在正文前面的一些话最近公司任务比较紧(为自己懒没写博客找的理由还不错), 关于博客的更新停滞了一段时间.最近一直在”仔细揣摩”公司项目的各种历史存储过程,那个苦啊,看的整个人不行不行的,关键是还得把诸如此类的存储过程改成java代码,还得自己写各种测试用例,对于我这种刚进公司的业务小白来说,实在是有点那啥了… 言归正传,幸好我们组长看我做事比较认真,最近交给我一个”光荣使命”:给公司分页插件添加

xubingchuan_blog的博客 6299

Mybatis (3)-----分页的运用

= ''">= ''">

m0_73647713的博客 1250

Mybatis Pagination 插件使用教程

Mybatis Pagination 插件使用教程 项目介绍 Mybatis Pagination 是一个用于 Mybatis 数据库物理分页方言的插件。该插件可以帮助开发者在使用 Mybatis 进行数据库操作时,实现高效的分页查询。通过使用物理分页,可以避免在内存中对大量数据进行排序分页,从而提高查询效率。 项目快速启动 1. 添加依赖 首先,在你的 Maven 项目中添加 Mybatis ...

gitblog_00437的博客 883

升级GCC4.4.7到GCC4.8.2所有依赖包

centos版本6.5升级GCC4.4.7到GCC4.8.2所有依赖包.

WinCC OA官方中文视频教程(第一天)

WinCC OA官方中文视频教程(第一天),需要安装压缩包内的播放器进行播放

上一篇: mybatis入门
下一篇: spring整合mybatis
zw._123
博客等级 码龄5年 44粉丝 · 63原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值