详解 Mybatis 模板(已优化)适合小白的完整攻略
Mybatis 是一款非常流行的轻量级 ORM 框架,使用 Mybatis 可以让 Java 开发者更加方便地操作数据库。在 Mybatis 中,使用模板可以大大简化编程,减少重复的代码。
在这篇攻略中,我们将详细讲解 Mybatis 模板的用法和优化技巧,这将帮助初学者更好地理解 Mybatis 的编程方式。
什么是 Mybatis 模板
Mybatis 模板是一种 Mybatis 专用的代码生成器,可以根据需要生成指定的 DAO(Data Access Object)、Mapper、实体类等文件。 Mybatis 模板可以帮助我们自动生成重复代码,帮助我们更加专注于业务逻辑的实现,提高代码质量和开发效率。
如何使用 Mybatis 模板
步骤 1:安装 Mybatis 模板
首先,我们需要安装 Mybatis 模板插件,可以通过以下步骤来安装:
- 打开 IntelliJ IDEA IDE,在菜单栏中选择“File” -> “Settings” -> “Plugins”;
- 在“Marketplace”或“Installed”选项卡下,搜索“mybatis-generator”;
- 点击“Install”按钮安装该插件。
步骤 2:配置 Mybatis 模板
安装完成后,我们需要配置 Mybatis 模板所需的参数:
- 在项目的根目录下创建一个“generatorConfig.xml”文件;
- 配置数据库连接参数、Java 包名等信息;
- 配置需要生成的表和实体类信息;
以下是一个示例的“generatorConfig.xml”文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<context id="Mysql" targetRuntime="MyBatis3">
<!-- 配置数据库连接参数 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost/test?serverTimezone=UTC"
userId="root"
password="123456">
</jdbcConnection>
<!-- 配置 Java 包名 -->
<javaModelGenerator targetPackage="com.example.entity"
targetProject="src/main/java">
</javaModelGenerator>
<sqlMapGenerator targetPackage="com.example.mapper"
targetProject="src/main/java">
</sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.example.mapper"
targetProject="src/main/java">
</javaClientGenerator>
<!-- 配置需要生成的表和实体类信息 -->
<table tableName="user">
<generatedKey column="id" sqlStatement="MySql" identity="true"/>
</table>
<table tableName="order">
<generatedKey column="id" sqlStatement="MySql" identity="true"/>
</table>
</context>
</generatorConfiguration>
步骤 3:生成 DAO、Mapper 和实体类文件
完成配置后,我们可以使用 Maven 或是 Gradle 等构建工具来执行生成命令。以下是一个简单的 Maven 插件执行命令:
mvn mybatis-generator:generate
执行命令后,Mybatis 模板将根据我们的配置自动生成 DAO、Mapper 和实体类文件。生成的文件存放在Java 包名对应的目录下。
优化 Mybatis 模板
Mybatis 模板使用起来非常方便,但是生成的代码在大量修改的情况下,容易出现重复代码问题。以下是一些优化技巧:
优化技巧 1:使用 Lombok
我们可以引入 Lombok 插件来优化实体类的生成,使用 Lombok 可以自动生成 getter、setter 等通用方法,减少重复代码。
以下是一个示例:
import lombok.Data;
@Data
public class User {
private Integer id;
private String name;
private Integer age;
}
优化技巧 2:使用通用 Mapper
Mybatis 通用 Mapper 是一个可以帮助我们生成通用 Mapper 的框架,该框架支持自动分页、自动生成单表 CRUD 等功能,可以大大减少重复代码量。
以下是一个示例:
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import tk.mybatis.mapper.entity.Example;
import java.util.List;
public abstract class BaseServiceImpl<T> implements BaseService<T> {
@Autowired
protected BaseMapper<T> mapper;
@Override
public PageInfo<T> page(int pageNo, int pageSize) {
PageHelper.startPage(pageNo, pageSize);
List<T> list = this.selectAll();
return new PageInfo<>(list);
}
@Override
public PageInfo<T> pageByExample(Object example, int pageNo, int pageSize) {
PageHelper.startPage(pageNo, pageSize);
List<T> list = this.mapper.selectByExample(example);
return new PageInfo<>(list);
}
@Override
public List<T> selectAll() {
return this.mapper.selectAll();
}
@Override
public T selectById(Object id) {
return this.mapper.selectByPrimaryKey(id);
}
@Override
public int add(T record) {
return this.mapper.insert(record);
}
@Override
public int update(T record) {
return this.mapper.updateByPrimaryKey(record);
}
@Override
public int deleteById(Object id) {
return this.mapper.deleteByPrimaryKey(id);
}
@Override
public int deleteByExample(Object example) {
return this.mapper.deleteByExample(example);
}
}
示例
以下是一个通过 Mybatis 模板生成的 Mapper 文件的示例:
public interface UserMapper {
int deleteByPrimaryKey(Integer id);
int insert(User record);
int insertSelective(User record);
User selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(User record);
int updateByPrimaryKey(User record);
}
以上就是 Mybatis 模板的使用和优化技巧攻略,希望可以帮助初学者更好地掌握 Mybatis 的编程方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Mybatis模板(已优化)适合小白 - Python技术站