mybatis generator 教學, 使用

MyBatis Generator (MBG) 是一個可以自動生成 MyBatis 對應的 Java 代碼的工具,它根據資料庫結構來生成映射的 Java Bean、Mapper 接口以及 SQL 的 XML 映射文件。這使得開發者能夠專注於業務邏輯,減少手動編寫 SQL 和 DAO 代碼的工作量。以下是一個使用 MyBatis Generator 的詳細教學。

1. 準備環境

要使用 MyBatis Generator,你需要以下工具:

  • Java JDK (至少 1.8)
  • MavenGradle
  • MyBatis
  • MyBatis Generator 插件

2. 添加 Maven 依賴

首先,在 Maven 的 pom.xml 中添加 MyBatis Generator 的依賴:<dependencies> <!-- MyBatis Generator 依賴 --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.4.0</version> </dependency> </dependencies>

然後添加插件,用於生成代碼:<build> <plugins> <!-- MyBatis Generator 插件 --> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.4.0</version> <executions> <execution> <id>Generate MyBatis Artifacts</id> <goals> <goal>generate</goal> </goals> </execution> </executions> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> </plugin> </plugins> </build>

3. 創建配置文件

MyBatis Generator 的配置文件是核心,它定義了資料庫連接信息、表結構以及生成的 Java 類和 SQL 映射的規則。創建一個 mbgConfig.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> <!-- JDBC 連接配置 --> <context id="DB2Tables" targetRuntime="MyBatis3"> <!-- 是否自動生成基於 MyBatis 的 DAO 接口和類 --> <commentGenerator> <property name="suppressAllComments" value="true" /> </commentGenerator> <!-- JDBC 驅動和資料庫連接信息 --> <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/your_database" userId="root" password="your_password"> </jdbcConnection> <!-- Java 類生成規則 --> <javaModelGenerator targetPackage="com.example.model" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- SQL Mapper XML 文件生成規則 --> <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- Mapper 接口生成規則 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.mapper" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- 配置表 --> <table tableName="your_table" domainObjectName="YourTable" /> </context> </generatorConfiguration>

4. 生成代碼

完成配置後,可以運行 Maven 命令來生成代碼:mvn mybatis-generator:generate

這個命令會根據你配置的資料庫表,生成以下幾個文件:

  • Model:Java POJO 類,對應資料庫中的表。
  • Mapper 接口:包含對應的 CRUD 方法(insertupdateselectdelete)。
  • Mapper XML 文件:包含具體的 SQL 語句。

5. 集成 MyBatis 與 Spring Boot

如果你使用的是 Spring Boot,可以通過配置文件來集成 MyBatis。首先,添加 MyBatis 依賴:<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency>

application.propertiesapplication.yml 中配置資料庫連接信息:# application.properties spring.datasource.url=jdbc:mysql://localhost:3306/your_database spring.datasource.username=root spring.datasource.password=your_password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # MyBatis 配置 mybatis.mapper-locations=classpath:mapper/*.xml

6. 使用生成的代碼

MyBatis Generator 生成的代碼可以直接在業務邏輯中使用,例如:@Autowired private YourTableMapper yourTableMapper; public YourTable getById(Long id) { return yourTableMapper.selectByPrimaryKey(id); } public void insert(YourTable yourTable) { yourTableMapper.insert(yourTable); }

7. 自定義生成規則

MyBatis Generator 還允許對生成規則進行自定義。例如,可以指定生成的 POJO 類是否包含 gettersetter,是否生成相應的 equalshashCode 方法,甚至可以自定義 SQL 語句。

例如:<commentGenerator> <property name="suppressAllComments" value="true" /> <property name="addRemarkComments" value="true" /> </commentGenerator>

小結

MyBatis Generator 是一個非常強大的工具,可以大大提高開發效率,特別是在處理大型資料庫時。通過配置和集成 Spring Boot,開發者可以自動生成 CRUD 代碼並專注於業務邏輯。

本文由 ChatGPT 自動產生