MyBatis笔记(5)-代码生成与分页插件
代码生成
在前面的过程中,我们都是按照一定的流程来使用MyBatis的。我们首先会创建数据库表,然后自己按照规范来书写实体类,Mapper接口以及对应的映射文件。这个过程要遵循一定的规范。
实际上,我们可以利用MyBatis的代码生成器插件来进行代码生成。具体来说,我们在数据库中准备好了数据表之后,可以利用生成器根据数据库表来生成其他必要资源,包括Java实体类、Mapper接口以及Mapper映射文件。下面就简单记录代码生成器的使用。
首先我们需要创建一个Maven项目,然后在其中添加必要的依赖和插件,内容如下:
1 |
|
第二步需要创建MyBatis的核心配置文件。由于核心配置文件不是由生成器生成的,这里直接按照正常流程创建即可。
第三步需要创建生成器的配置文件,文件名称必须是generatorConfig.xml
,其中的内容如下:
1 |
|
- 在
context
标签中需要指定targetRuntime
,表示执行使用生成器的版本,可选值为MyBatis3Simple | MyBatis3
MyBatis3Simple
:简易版生成器,生成的接口中只有基本的CRUD操作MyBatis3
:完整版生成器,生成的接口中拥有大量的方法,基本上涵盖了对单表的所有操作
- 之后我们需要指定数据的连接信息、实体类,映射文件以及Mapper接口的生成策略,在其中指定目标包以及目标路径
- 然后指定我们的目标数据来源表,以及生成出来的实体类的类名
完成上面的准备操作后,执行Maven插件的mybatis-genrator
生成完毕后可以发现在工程项目中已经出现了对应的实体类,Mapper接口以及映射文件等。
分页插件
在前端列表展示功能中,经常会遇到分页功能的实现。可以考虑常见的分页导航栏,在最底端有首页、上一页、xxx页、下一页、末页等超链接,在每一个页面这些链接对应的实际URL都不同,需要动态变化。我们可以通过SQL中的关键字limit,以及一些条件判断来完成对应的功能,但是较为复杂。对于这种通用的功能,我们可以使用分页插件来完成对应的效果,下面就介绍分页插件的使用。
首先我们需要在Maven工程中添加依赖,如下所示:
1 |
|
然后在MyBatis的核心配置文件中设置插件,之后就可以进行使用了。
1 |
|
首先我们准备一个查询所有记录的方法,并实现映射文件中对应的SQL语句:
1 |
|
正常情况下,我们调用方法得到的输出是数据库中全部的记录。但是开启分页功能之后,就只会输出当前页的内容。
1 |
|
输出如下,这里设置了开启分页,并设置当前页码(从1开始)以及每页的大小。
1 |
|
上面startPage
方法实际上是有一个返回对象的,返回的就是当前页面的信息,我们可以输出其中的内容进行查看:
1 |
|
输出信息如下,可以看到该页面更加详细的信息,包括页码数,单页的项目总数,开始行,结束行,总数,页数等等。中括号[]
中保存的正是当前页面中的所有内容。
1 |
|
我们还可以利用一个PageInfo对象来获取分页相关的其他数据:
1 |
|
在上面我们给定其中导航栏中的页码数,输出内容如下:
1 |
|
其中包括该页以及导航的更多信息:
pageNum
:当前页的页码pageSize
:每页显示的条数size
:当前页显示的真实条数startRow
:开始行endRow
:结束行total
:总记录数pages
:总页数list
:当前页的实际内容prePage
:上一页的页码nextPage
:下一页的页码isFirstPage
:当前页是否为第一页isLastPage
:当前页是否为最后一页hasPreviousPage
:是否有前一页hasNextPage
:是否有下一页navigatePages
:导航分页的页码数navigateFirstPage
:导航分页的首页navigateLastPage
:导航分页的末页navigatepageNums
:导航分页的页码