Mybatis 详解

Mybatis

PageHelper

PageHelper首先将前端传递的参数保存到page这个对象中,接着将page的副本存放入ThreadLoacl中,这样可以保证分页的时候,参数互不影响,接着利用了mybatis提供的拦截器,取得ThreadLocal的值,重新拼装分页SQL,完成分页。参考

<!--MyBatis分页插件-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.12</version>
</dependency>

@Service
public class DemoServiceImpl implements DemoService {
    @Autowired
    private PmsBrandMapper brandMapper;

    @Override
    public List<PmsBrand> listBrand(int pageNum, int pageSize) {
        PageHelper.startPage(pageNum, pageSize);
        return brandMapper.selectByExample(new PmsBrandExample());
    }
}
Mybatis-Generator

java demo 包含 Mybatis-Generator 应用的相关代码。相关代码在 mybatis-generator 模块,核心类: com.zhengcj.demo.mybatis.generator.Generator,执行该类,就会把 modelsqlmapper生成到 mybatis模块中。

Mybatis

mybatis-generator 模块 会把代码生成到 mybatis 模块 中。swagger 模块 讲会使用到这些数据,但是在swagger 使用这些数据前,需要进行相关配置,配置的目的在于告诉spring,sqlmapper的位置,已经数据库访问需要的 url, username,password.

  • MyBatisConfig 申明mapper信息(in swagger module)
@Configuration
@MapperScan("com.zhengcj.demo.mybatis.mapper")
public class MyBatisConfig {
}
  • application.yml 申明 sql 信息
## 配置mybatis
mybatis:
  mapper-locations: classpath:mappers/*.xml
  # 全局的映射,不用在xml文件写实体类的全路径
  type-aliases-package: com.zhengcj.demo.mybatis.pojo
  configuration:
    # 开启驼峰映射
    map-underscore-to-camel-case: true
  • application.yml 申明数据库访问需要的 url, username,password等信息
    spring:
      datasource:
        url: jdbc:mysql://mysql:3306/demo?characterEncoding=utf-8
        username: root
        password: root
    
    url 为啥是:jdbc:mysql://mysql:3306/demo?characterEncoding=utf-8?因为访问链接的是Docker里面的mysql,详情参考:docker详解

至此,业务模块就可以通过 mybatis-generator生成的代码访问数据库数据了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值