MyBatis Plus 演示代码 - 简化数据访问与代码生成
2023-12-04 17:53:20
MyBatis Plus 简介
MyBatis Plus 是一个 MyBatis 的增强工具,可以极大地简化 MyBatis 的使用。它提供了一些开箱即用的功能,例如:
- 代码生成:MyBatis Plus 可以自动生成实体类、仓库、服务和控制器等代码,大大提高了开发效率。
- CRUD 操作:MyBatis Plus 提供了简洁的 CRUD 操作 API,可以让你轻松地对数据库进行增删改查操作。
- 关联查询:MyBatis Plus 支持关联查询,可以让你方便地查询出实体类之间的关系数据。
- 分页查询:MyBatis Plus 支持分页查询,可以让你方便地对数据进行分页显示。
- 事务管理:MyBatis Plus 支持事务管理,可以让你方便地对数据进行事务控制。
MyBatis Plus 演示代码
为了演示 MyBatis Plus 的使用方法,我们创建一个简单的 Spring Boot 项目。
1. 准备工作
首先,我们需要准备一个数据库。这里,我们使用 MySQL 数据库。
2. 添加 Maven 依赖
在项目的 pom.xml 文件中,添加以下 Maven 依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
3. 创建实体类
接下来,我们需要创建实体类。实体类对应于数据库中的表。这里,我们创建一个 User 实体类:
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
}
4. 创建仓库
仓库负责对数据库进行操作。这里,我们创建一个 UserRepository 仓库:
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserRepository extends BaseMapper<User> {
}
5. 创建服务
服务负责对仓库进行调用,并提供业务逻辑。这里,我们创建一个 UserService 服务:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public List<User> list() {
return userRepository.selectList(null);
}
}
6. 创建控制器
控制器负责处理 HTTP 请求,并调用服务。这里,我们创建一个 UserController 控制器:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/list")
public List<User> list() {
return userService.list();
}
}
7. 运行项目
最后,我们可以运行项目了。在项目根目录下,运行以下命令:
mvn spring-boot:run
项目启动后,我们可以通过浏览器访问 http://localhost:8080/user/list
来查看所有用户。
MyBatis Plus 代码生成
MyBatis Plus 可以自动生成实体类、仓库、服务和控制器等代码。这可以大大提高我们的开发效率。
1. 添加代码生成器依赖
在项目的 pom.xml 文件中,添加以下代码生成器依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.2</version>
</dependency>
2. 创建代码生成器配置类
接下来,我们需要创建一个代码生成器配置类。这里,我们创建一个 GeneratorConfig 类:
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
@Configuration
public class GeneratorConfig {
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
@Value("${spring.datasource.driver-class-name}")
private String driverName;
public void generateCode() {
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("Your Name");
gc.setOpen(false);
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl(url);
dsc.setDriverName(driverName);
dsc.setUsername(username);
dsc.setPassword(password);
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setModuleName("demo");
pc.setParent("com.example");
mpg.setPackageInfo(pc);
// 模板配置
TemplateConfig templateConfig = new TemplateConfig();
templateConfig.setXml(null);
mpg.setTemplate(templateConfig);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(true);
strategy.setInclude("user");
strategy.setControllerMappingHyphenStyle(true);
strategy.setTablePrefix(pc.getModuleName() + "_");
mpg.setStrategy(strategy);
mpg.execute();
}
}
3. 运行代码生成器
最后,我们可以运行代码生成器了。在项目根目录下,运行以下命令:
mvn generate-sources
代码生成器会自动生成实体类、仓库、服务和控制器等代码。这些代码位于 src/main/java
目录下。
总结
MyBatis Plus 是一个非常强大的 ORM 框架,可以极大地简化数据访问和代码生成。在本文中,我们演示了如何使用 MyBatis Plus 来简化数据访问和代码生成。我们还介绍了如何使用 MyBatis Plus 的代码生成器来自动生成实体类、仓库、服务和控制器等代码。