MyBatis 是一款优秀的持久层框架, 它支持定制化 SQL, 存储过程以及高级映射, 目前很大一部分互联网, 软件公司都在使用这套框架
关于 Mybatis-Generator 的下载可以到这个地址: https://github.com/mybatis/generator/releases ,
下来来之后, 我们主要关注几个文件
配置文件: generator.properties
主要是数据库的相关配置, 以及文件生成的根路径
- generator.jdbc.driver=com.MySQL.jdbc.Driver
- generator.jdbc.url=jdbc:MySQL://192.168.xxx.xxx:4596/ek?useUnicode=true&characterEncoding=utf8
- generator.jdbc.username=root
- #\u6570\u636e\u5e93\u5bc6\u7801\uff0c\u4e0d\u8981\u52a0\u5bc6\uff01\uff01\uff01
- generator.jdbc.password=ek2018
- #\u6570\u636e\u5e93\u540d
- generator.jdbc.database=ek
- #\u8868\u7684\u524d\u7f00
- generator.jdbc.tablePrefix=t_
- #\u751f\u6210\u7684package\u7ed3\u6784
- generator.package.name=com.ek
- #\u751f\u6210\u5230\u7684\u9879\u76ee\u7684\u6839\u8def\u5f84\uff0c\u4f8b\u5982\uff1a\u751f\u6210\u5230\u9879\u76eeexue-authcenter-web\u4e0b\u65f6\uff0c\u53ef\u4ee5\u8fd9\u4e48\u914d\u7f6e\uff1a
- #generator.target.rootPath=E:/MLCS_HQB/workspace/Git/exuePlat/exue-authcenter/exue-authcenter-Web
- generator.target.rootPath=E:/WorkSpace/eke/code-generator
generatorConfig.xml
这里主要是引用配置文件里的数据库配置, 标明 model,MapperXml,Mapper 等文件生成的路径
- <table > 标签里写需要生成文件的表有哪些
- <!-- 数据库连接 -->
- <jdbcConnection driverClass="${generator.jdbc.driver}"
- connectionURL="${generator.jdbc.url}"
- userId="${generator.jdbc.username}"
- password="exue2018" />
- <!-- model 生成 -->
- <javaModelGenerator targetPackage="com.exue.dao.model" targetProject="E:/WorkSpace/eLearning/exue-eLearning/exue-code-generator/src/main/java" />
- <!-- MapperXML 生成 -->
- <sqlMapGenerator targetPackage="com.exue.dao.mapper" targetProject="E:/WorkSpace/eLearning/exue-eLearning/exue-code-generator/src/main/java" />
- <!-- Mapper 接口生成 -->
- <javaClientGenerator targetPackage="com.exue.dao" targetProject="E:/WorkSpace/eLearning/exue-eLearning/exue-code-generator/src/main/java" type="XMLMAPPER" />
- <!-- 需要映射的表 -->
- <!-- 需要映射的表 -->
- <table tableName="t_user_base" domainObjectName="UserBase"></table>
配置文件结束后, 执行 Generator.java 里的 main 方法, 刷新项目, 就 ok 了
在现在中, 我们可能需要对生成的文件内容做一些额外的配置, 那就根据具体需求在模板文件里修改
该要的文件都有了, 放到项目中的特定包下
下面看下 pom.xml 需要加哪些依赖包
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid</artifactId>
- <version>1.1.0</version>
- </dependency>
- <dependency>
- <groupId>MySQL</groupId>
- <artifactId>MySQL-connector-java</artifactId>
- <version>5.1.41</version>
- </dependency>
- <dependency>
- <groupId>org.mybatis.spring.boot</groupId>
- <artifactId>mybatis-spring-boot-starter</artifactId>
- <version>1.3.1</version>
- </dependency>
- <!--mapper-->
- <dependency>
- <groupId>tk.mybatis</groupId>
- <artifactId>mapper-spring-boot-starter</artifactId>
- <version>1.2.4</version>
- </dependency>
- <!--pagehelper-->
- <dependency>
- <groupId>com.GitHub.pagehelper</groupId>
- <artifactId>pagehelper-spring-boot-starter</artifactId>
- <version>1.2.3</version>
- </dependency>
包括了 MySQL 数据驱动, Mybatis 的启动包, 数据库连接池 druid 相关依赖
打开 Spring Boot 启动类, 在类上添加注解 @MapperScan("com.example.demo.mapper"), 记得要扫描 mapper 接口
- @SpringBootApplication
- @MapperScan("com.example.demo.mapper")
- public class DemoApplication {
- public static void main(String[] args) {
- SpringApplication.run(DemoApplication.class, args);
- }
- }
然后来看下 MySQL 的配置, 打开 application.properties
- #datasource
- spring.datasource.url=jdbc:MySQL://192.168.128.183:4596/eke?useUnicode=true&characterEncoding=UTF-8&useSSL=false
- spring.datasource.username=root
- spring.datasource.password=exue2018
- spring.datasource.driver-class-name=com.MySQL.jdbc.Driver
- spring.datasource.druid.initial-size=1
- spring.datasource.druid.min-idle=5
- spring.datasource.druid.max-active=20
- spring.datasource.druid.max-wait-millis=60000
- #mybatis
- mybatis.type-aliases-package=com.example.demo.pojo
- mybatis.mapper-locations=classpath:mapper/*.xml
- #pagehelper
- pagehelper.helperDialect=MySQL
- pagehelper.reasonable=true
- pagehelper.supportMethodsArguments=true
- pagehelper.params=count=countSql
第一部分是 dataSource 的配置, 包括了数据库地址, 库名, 用户名, 密码以及相关数据库连接池的配置
第二部分是 Mybatis 的配置, 包括自定义 pojo 的包路径, 不需要加 classpath: 以及 Mapper xml 的路径
第三部分是分页的相关配置
在 service 层定义接口 pageUserBase , 最后返回是以分页的形式展现
PageResult<UserBaseDTO> pageUserBase(UserBaseDTO searchCondition, Pagination page) throws Exception;
怎么去实现这个分页显示
- @Override
- public PageResult<UserBaseDTO> pageUserBase(UserBaseDTO userBaseDTO, Pagination page) throws Exception {
- // TODO Auto-generated method stub
- PageHelper.startPage(page.getPage(),page.getRows());
- UserBaseExample UserBaseExamle = new UserBaseExample();
- UserBaseExamle.setOrderByClause("p_id DESC");
- List<UserBase> listUserBase = userBaseMapper.selectByExample(UserBaseExamle);
- List<UserBaseDTO> listUserBaseDTO = new ArrayList<UserBaseDTO>();
- for(UserBase ub :listUserBase){
- UserBaseDTO ubd = new UserBaseDTO();
- ubd.setpId(ub.getpId());
- ubd.setsPassword(ub.getsPassword());
- ubd.setsPhone(ub.getsPhone());
- listUserBaseDTO.add(ubd);
- }
- Pagination pagination = new Pagination();
- pagination = SqlUtil.generatePagination(listUserBase);
- return new PageResult<>(listUserBaseDTO, pagination);
- }
PageHelper.startPage(page.getPage(),page.getRows()); 获取客户端传来的页码和一页显示记录数
- Pagination pagination = new Pagination();
- pagination = SqlUtil.generatePagination(listUserBase);
根据最后返回的 list 进行分页处理
返回到 controller 层后, 进行 ResponseMsg 的封装后, 返回客户端
- PageResult<UserBaseDTO> res = null;
- List<UserBaseDTO> list = null;
- UserBaseDTO ubt = new UserBaseDTO();
- try {
- StringBuffer logOut = new StringBuffer();
- logOut.append("\n");
- logOut.append("cjq2 测试");
- logOut.append("\n");
- LOGGER.debug(logOut.toString());
- Pagination page = new Pagination();
- page.setPage(1);
- page.setRows(10);;
- res = iUserbaseService.pageUserBase(ubt, page);
- list = res.getList();
- } catch (Exception e) {
- // TODO: handle exception
- throw new BaseException("数据错误");
- //LOGGER.error(e.getMessage());
- }
- return new ResponseMsg(requestMsg.getRoute(), GeneralConstant.SUCCESS, "查询成功", res);
启动 SpringBoot 项目
来源: https://www.cnblogs.com/qiyuan880794/p/9835746.html