0%

Java Mybatis

Mybatis

porm.xml配置,引入mybatis相关依赖包和mysql驱动包。

1
2
3
4
5
6
7
8
9
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

yml配置

1
2
3
4
5
6
7
8
9
10
11
spring:
datasource:
url: jdbc:mysql://192.168.161.3:3306/testdb?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: test
password: 4rfv$RFV
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
mapper-locations: classpath:generator/*.xml # 表示去哪里扫描xml文件
logging:
level:
com.zimug.bootlaunch: debug

配置Mybatis的Mapper类文件的包扫描路径

1
2
3
4
5
6
7
8
9
@SpringBootApplication
@MapperScan(basePackages = {"com.zimug.boot.launch.generator"})
public class BootLaunchApplication {

public static void main(String[] args) {
SpringApplication.run(BootLaunchApplication.class, args);
}

}

安装Mybatis generator插件

  • 配置
    better-mybatis-generator这个插件将帮助我们根据数据库表结构生成Mybatis操作接口及实体类定义等内容。能极大的方便我们开发,减少手写代码量。

  • CRUD 增删改查demo

mybatis-spring-boot-starter

  • 配置
  • demo

不同的场景方案

mybatis代码实现方式

  1. 使用mybatis generator做代码自动生成,或者使用MybatisPlus解决方案
  2. 使用XML方式实现
  3. 使用注解方式实现
  • 单表的增删改查

mybatis generator生成的代码,或者MybatisPlus能够完成90%的单表操作,而且不用自己去书写SQL。

Mybatis Generator自动生成的代码 最大程度帮你完成单表操作。涉及到关联查询、继承,Mybatis文件和SQL还是要你自己写,但是不要在生成的代码基础上面改!

  • 多查询条件的查询(或多表关联查询)

面对这种场景,就需要ORM框架对 动态SQL(根据传入参数不同,SQL会发生变化) 有很好的支持,包括书写的方便度等。从这个角度上讲,mybatis的xml的是实现方式独占鳌头。

  • 其它
    其实除去上面两种场景,剩下的情况已经不多了,但是还是可以举几个例子:
    比如:针对单表只有插入操作,你有不想因此生成一套完整的针对单表的操作代码。
    比如:只是临时起意,写一个较为简单的SQL。

查询结果属性映射的最佳实践

使用@MapperScan而不是@mapper

使用PageHelper分页插件