天河建网站网络营销专业建议
- 作者: 五速梦信息网
- 时间: 2026年03月21日 08:20
当前位置: 首页 > news >正文
天河建网站,网络营销专业建议,二次开发收费需要高点,中小企业网站提供了什么在这篇文章中#xff0c;我们将通过实际代码示例来说明如何使用 MyBatis Generator (MBG) 来自动化生成 MyBatis 项目所需的实体类、Mapper 接口和 Mapper XML 文件。我们将使用一个 Maven 插件来执行代码生成#xff0c;并提供详细的配置和解释。 1. MyBatis Generator 简介…在这篇文章中我们将通过实际代码示例来说明如何使用 MyBatis Generator (MBG) 来自动化生成 MyBatis 项目所需的实体类、Mapper 接口和 Mapper XML 文件。我们将使用一个 Maven 插件来执行代码生成并提供详细的配置和解释。 1. MyBatis Generator 简介 MyBatis Generator简称 MBG是 MyBatis 官方提供的工具旨在通过数据库表结构自动生成 MyBatis 所需的代码包括 Java 实体类Model、Mapper 接口以及 Mapper XML 文件。使用 MBG可以大大减少开发人员在进行 CRUD 操作时的重复工作提升开发效率和代码一致性。
- MyBatis Generator 的功能 MBG 主要提供以下功能 生成 Java 实体类Model自动根据数据库表的结构生成对应的 Java 类类的字段和数据库表的列一一对应。生成 Mapper 接口为每个数据库表生成对应的 Mapper 接口接口中包含了常见的 CRUD 方法。生成 MyBatis 映射文件Mapper XML根据数据库表结构自动生成与 Mapper 接口方法对应的 XML 映射文件其中包含 SQL 语句的定义。
- 使用 MyBatis Generator 的优势 节省时间和精力通过自动化生成代码减少了重复劳动开发人员可以将更多时间专注于业务逻辑的实现。减少错误自动生成的代码遵循一定的规范和模板避免了手动编写时的拼写错误和不规范。提高一致性生成的代码在结构和格式上非常统一便于团队协作和代码的维护。灵活性和扩展性MBG 提供了丰富的配置选项可以根据项目的需求定制生成的代码包括字段类型映射、SQL 语句生成规则等。
- MyBatis Generator 配置与使用示例 4.1 Maven 插件配置 首先我们需要在 pom.xml 中添加 MyBatis Generator 插件的配置。以下是一个典型的 Maven 配置段 plugingroupIdorg.mybatis.generator/groupIdartifactIdmybatis-generator-maven-plugin/artifactIdversion1.4.0/versionconfiguration!– 指定 MyBatis Generator 的配置文件 –configurationFilesrc/main/resources/generator-config-business.xml/configurationFile!– 如果需要覆盖现有的代码设置 overwrite 为 true –overwritetrue/overwrite!– 显示生成过程中的详细日志 –verbosetrue/verbose/configurationdependencies!– 添加数据库连接依赖如 MySQL –dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.22/version/dependency/dependencies /pluginconfigurationFile指定 MyBatis Generator 的配置文件路径。overwrite如果设置为 true则允许覆盖已存在的生成文件。verbose如果设置为 true则会输出更多的生成过程日志方便调试。 4.2 MyBatis Generator 配置文件 接下来是 MyBatis Generator 的核心配置文件 generator-config-business.xml在配置生成器的基本设置时需要关注以下几个重要配置 数据库连接、生成的 Java 类、Mapper 类及 XML 文件配置。以下是该配置文件的具体内容 ?xml version1.0 encodingUTF-8? !DOCTYPE generatorConfigurationPUBLIC -//mybatis.org//DTD MyBatis Generator Configuration 1.0//ENhttp://mybatis.org/dtd/mybatis-generator-config_1_0.dtdgeneratorConfigurationcontext idMysql targetRuntimeMyBatis3 defaultModelTypeflat!– 自动检查数据库的关键字并加上反引号避免与数据库关键字冲突 –property nameautoDelimitKeywords valuetrue/property namebeginningDelimiter value/property nameendingDelimiter value/!– 插件配置增强 XML 的合并性 –plugin typeorg.mybatis.generator.plugins.UnmergeableXmlMappersPlugin/!– 插件配置自动生成 toString() 方法 –plugin typeorg.mybatis.generator.plugins.ToStringPlugin/!– 配置注释生成策略这里选择不生成注释 –commentGeneratorproperty namesuppressAllComments valuetrue//commentGenerator!– 配置数据库连接修改为实际数据库的连接信息 –jdbcConnection driverClasscom.mysql.cj.jdbc.DriverconnectionURLjdbc:mysql://localhost:3306/train?characterEncodingUTF8amp;allowPublicKeyRetrievaltrueamp;useSSLfalseamp;serverTimezoneAsia/ShanghaiuserIdtrainpassword123456/jdbcConnection!– 配置生成的实体类位置 –javaModelGenerator targetProject../member/src/main/javatargetPackagecom.stu.train.member.domain/!– 配置生成的 SQL 映射文件位置 –sqlMapGenerator targetProject../member/src/main/resourcestargetPackagemapper/!– 配置生成的 Mapper 类位置 –javaClientGenerator targetProject../member/src/main/javatargetPackagecom.stu.train.member.mappertypeXMLMAPPER/!– 选择要生成代码的数据库表 –table tableNamepassenger domainObjectNamePassenger//context /generatorConfiguration4.3 配置项说明 jdbcConnection配置数据库连接信息包括数据库的 URL、用户名、密码等。javaModelGenerator配置生成的 Java 实体类的存放位置。sqlMapGenerator配置生成的 SQL 映射文件的存放位置。javaClientGenerator配置生成的 Mapper 接口类的位置。table指定要生成代码的数据库表可以多次配置以支持多个表。 4.4 执行 MyBatis Generator 生成代码 配置完成后可以通过 Maven 执行代码生成。在命令行中运行以下命令或者在 Maven 插件中双击执行 mvn mybatis-generator:generate执行后MyBatis Generator 会根据配置文件自动生成对应的 Java 实体类、Example 类用于复杂查询、Mapper 接口和 Mapper XML 文件。生成的文件结构大致如下 src/main/java└── com└── stu└── train└── member└── domain└── Passenger.java – 生成的实体类└── PassengerExample.java – 生成的辅助类└── mapper└── PassengerMapper.java – 生成的 Mapper 接口 src/main/resources└── mapper└── PassengerMapper.xml – 生成的 XML 映射文件MyBatis Generator 自动生成的代码包括以下几个部分 实体类Passenger.java对应数据库表的每一列它通常包含基本的字段、getter 和 setter 方法。Example 类PassengerExample.java用于构建动态查询条件支持链式调用来添加查询条件、排序、分页等。Mapper 接口PassengerMapper.java定义与数据库交互的方法如增、删、改、查。Mapper XML 文件PassengerMapper.xml对应 Mapper 接口的方法编写 SQL 查询语句。 4.5 生成的代码示例 Passenger.java实体类 public class Passenger {private Integer id;private String name;private Integer age;// Getter 和 Setter 方法public Integer getId() {return id;}public void setId(Integer id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;} }PassengerMapper.javaMapper 接口 public interface PassengerMapper {int deleteByPrimaryKey(Integer id);int insert(Passenger record);Passenger selectByPrimaryKey(Integer id);int updateByPrimaryKey(Passenger record);ListPassenger selectByExample(PassengerExample example); }PassengerMapper.xmlMapper 映射文件 mapper namespacecom.stu.train.member.mapper.PassengerMapper!– 查询单个乘客 –select idselectByPrimaryKey resultTypecom.stu.train.member.domain.PassengerSELECT id, name, age FROM passenger WHERE id #{id}/select!– 插入乘客 –insert idinsert parameterTypecom.stu.train.member.domain.PassengerINSERT INTO passenger (name, age) VALUES (#{name}, #{age})/insert!– 删除乘客 –delete iddeleteByPrimaryKey parameterTypejava.lang.IntegerDELETE FROM passenger WHERE id #{id}/delete!– 更新乘客 –update idupdateByPrimaryKey parameterTypecom.stu.train.member.domain.PassengerUPDATE passengerSET name #{name}, age #{age}WHERE id #{id}/update /mapperPassengerExample.javaExample 类 PassengerExample 类是用来构建 SQL 查询条件的。它通常包含一个内部类 Criteria用来定义具体的查询条件。以下是一个 PassengerExample 的生成代码示例 public class PassengerExample {protected String orderByClause;protected boolean distinct;protected ListCriteria oredCriteria;public PassengerExample() {oredCriteria new ArrayList();}// 设置排序字段public void setOrderByClause(String orderByClause) {this.orderByClause orderByClause;}public String getOrderByClause() {return orderByClause;}// 设置查询是否去重public void setDistinct(boolean distinct) {this.distinct distinct;}public boolean isDistinct() {return distinct;}// 获取所有查询条件public ListCriteria getOredCriteria() {return oredCriteria;}// 添加查询条件public void or(Criteria criteria) {oredCriteria.add(criteria);}public Criteria or() {Criteria criteria createCriteriaInternal();oredCriteria.add(criteria);return criteria;}// 创建查询条件public Criteria createCriteria() {Criteria criteria createCriteriaInternal();if (oredCriteria.size() 0) {oredCriteria.add(criteria);}return criteria;}protected Criteria createCriteriaInternal() {return new Criteria();}// 清除查询条件public void clear() {oredCriteria.clear();orderByClause null;distinct false;}public static class Criteria {protected ListCriterion criteria;protected Criteria() {criteria new ArrayList();}// 判断条件是否有效public boolean isValid() {return criteria.size() 0;}// 获取所有条件public ListCriterion getAllCriteria() {return criteria;}// 添加单一条件public void addCriterion(String condition) {criteria.add(new Criterion(condition));}public void addCriterion(String condition, Object value, String property) {criteria.add(new Criterion(condition, value));}public void addCriterion(String condition, Object value1, Object value2, String property) {criteria.add(new Criterion(condition, value1, value2));}// 例如添加条件id ?public Criteria andIdEqualTo(Integer value) {addCriterion(id , value, id);return this;}// 例如添加条件name like ?public Criteria andNameLike(String value) {addCriterion(name like, value, name);return this;}// …更多查询条件方法}// 用于表示一个条件public static class Criterion {private String condition;private Object value;private Object secondValue;public Criterion(String condition) {this.condition condition;}public Criterion(String condition, Object value) {this(condition);this.value value;}public Criterion(String condition, Object value, Object secondValue) {this(condition, value);this.secondValue secondValue;}public String getCondition() {return condition;}public Object getValue() {return value;}public Object getSecondValue() {return secondValue;}} }4.6 使用 Example 类进行动态查询 使用 PassengerExample 类进行动态查询时可以通过 Criteria 类来设置查询条件然后传递给 Mapper 方法。例如 PassengerExample example new PassengerExample(); PassengerExample.Criteria criteria example.createCriteria(); criteria.andNameLike(%John%); // 查询 name 字段包含 John 的记录 criteria.andAgeGreaterThan(20); // 查询 age 大于 20 的记录ListPassenger passengers passengerMapper.selectByExample(example);在这个例子中我们使用 PassengerExample 和 Criteria 构造了一个动态 SQL 查询其中包含了两个条件 name 字段包含 “John”。age 字段大于 20。 最后使用 passengerMapper.selectByExample(example) 执行查询操作。
- 总结 通过 MyBatis Generator 的配置和使用示例我们可以快速根据数据库表生成实体类、Mapper 接口和 XML 映射文件极大地提高开发效率。上述代码示例展示了如何在 Maven 项目中配置 MyBatis Generator并结合实际数据库表生成相应的代码。通过自定义配置文件我们可以控制生成的代码风格、存放位置以及生成的内容进一步提高代码的自动化程度和一致性。
- 上一篇: 天河建网站的公司公司网站开发费用放在什么科目
- 下一篇: 天河商城型网站建设中国五码一级做爰网站
相关文章
-
天河建网站的公司公司网站开发费用放在什么科目
天河建网站的公司公司网站开发费用放在什么科目
- 技术栈
- 2026年03月21日
-
天河建网站360优化大师安卓下载
天河建网站360优化大师安卓下载
- 技术栈
- 2026年03月21日
-
天河建设网站报价网站开发的响应式和兼容性问题
天河建设网站报价网站开发的响应式和兼容性问题
- 技术栈
- 2026年03月21日
-
天河商城型网站建设中国五码一级做爰网站
天河商城型网站建设中国五码一级做爰网站
- 技术栈
- 2026年03月21日
-
天河网站建设集团国产网站开发工具公司
天河网站建设集团国产网站开发工具公司
- 技术栈
- 2026年03月21日
-
天河网站建设企业windows server 2008 wordpress
天河网站建设企业windows server 2008 wordpress
- 技术栈
- 2026年03月21日
