做网站一定需要服务器吗网站建设首选九零后网络
news/
2025/10/2 14:02:20/
文章来源:
做网站一定需要服务器吗,网站建设首选九零后网络,node.js做网站开发,上海工作室文章目录 1. 依赖2. 配置文件3. 生成代码4. 详细介绍 generatorConfig.xml5. 代码详细总结 Spring MyBatis Generator 是 MyBatis 官方提供的一个强大的工具#xff0c;它能够基于数据库表结构自动生成 MyBatis 持久层的代码#xff0c;包括实体类、Mapper 接口和 XML 映射文… 文章目录 1. 依赖2. 配置文件3. 生成代码4. 详细介绍 generatorConfig.xml5. 代码详细总结 Spring MyBatis Generator 是 MyBatis 官方提供的一个强大的工具它能够基于数据库表结构自动生成 MyBatis 持久层的代码包括实体类、Mapper 接口和 XML 映射文件。这种自动代码生成的方式能够提高开发效率减少手写代码的工作量。本篇博客将引导你如何使用 Spring MyBatis Generator 进行代码生成。
1. 依赖
首先需要在项目的 pom.xml 文件中引入 Spring MyBatis Generator 插件的依赖 dependencygroupIdorg.mybatis.generator/groupIdartifactIdmybatis-generator-core/artifactIdversion1.4.2/version/dependency2. 配置文件
在 src/main/resources 目录下创建 generatorConfig.xml 文件配置代码生成的参数例如
!DOCTYPE generatorConfiguration PUBLIC -//mybatis.org//DTD MyBatis Generator Configuration 1.0//ENhttp://mybatis.org/dtd/mybatis-generator-config_1_0.dtdgeneratorConfigurationcontext idDemoBatisGenerator targetRuntimeMyBatis3plugin typeorg.mybatis.generator.plugins.ToStringPlugin /commentGeneratorproperty namesuppressDate valuefalse /property namesuppressAllComments valuetrue /property nameauthor valuefalse //commentGenerator!-- 数据库连接配置 --jdbcConnection driverClassorg.h2.DriverconnectionURLjdbc:h2:mem:db1userIdsapassword/jdbcConnection!-- Java 模型生成器 --javaModelGenerator targetPackagecom.cheney.demo.model targetProjectsrc/main/javaproperty nameenableSubPackages valuetrue /property nametrimStrings valuetrue //javaModelGenerator!-- SQL Map 生成器 --sqlMapGenerator targetPackagemapper targetProjectsrc/main/resourcesproperty nameenableSubPackages valuetrue //sqlMapGenerator!-- Mapper 接口生成器 --javaClientGenerator targetPackagecom.cheney.demo.dao targetProjectsrc/main/java typeXMLMAPPERproperty nameenableSubPackages valuetrue //javaClientGenerator!-- 表配置 --table tableNamet_user domainObjectNameUser enableCountByExamplefalseenableUpdateByExamplefalse enableDeleteByExamplefalse enableSelectByExamplefalseselectByExampleQueryIdfalse/table/context/generatorConfiguration3. 生成代码
使用 Java 编程方式生成代码 GetMapping(generator)public void generator() throws Exception {ListString warnings new ArrayList();boolean overwrite true;ConfigurationParser cp new ConfigurationParser(warnings);Configuration config cp.parseConfiguration(this.getClass().getResourceAsStream(/generatorConfig.xml));DefaultShellCallback callback new DefaultShellCallback(overwrite);MyBatisGenerator myBatisGenerator new MyBatisGenerator(config, callback, warnings);myBatisGenerator.generate(null);}1服务启动 2调用 generator 运行 3MyBatis Generator 将会根据配置文件自动生成实体类、Mapper 和 XML 映射文件并放置在指定的目录中 User.java
package com.cheney.demo.model;public class User {private Integer id;private String name;private Integer age;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 null ? null : name.trim();}public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}Overridepublic String toString() {StringBuilder sb new StringBuilder();sb.append(getClass().getSimpleName());sb.append( [);sb.append(Hash ).append(hashCode());sb.append(, id).append(id);sb.append(, name).append(name);sb.append(, age).append(age);sb.append(]);return sb.toString();}
}UserMapper.java
package com.cheney.demo.dao;import com.cheney.demo.model.User;public interface UserMapper {int deleteByPrimaryKey(Integer id);int insert(User row);int insertSelective(User row);User selectByPrimaryKey(Integer id);int updateByPrimaryKeySelective(User row);int updateByPrimaryKey(User row);
}UserMapper.xml
?xml version1.0 encodingUTF-8?
!DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.cheney.demo.dao.UserMapperresultMap idBaseResultMap typecom.cheney.demo.model.Userid columnID jdbcTypeINTEGER propertyid /result columnNAME jdbcTypeVARCHAR propertyname /result columnAGE jdbcTypeINTEGER propertyage //resultMapsql idBase_Column_ListID, NAME, AGE/sqlselect idselectByPrimaryKey parameterTypejava.lang.Integer resultMapBaseResultMapselect include refidBase_Column_List /from T_USERwhere ID #{id,jdbcTypeINTEGER}/selectdelete iddeleteByPrimaryKey parameterTypejava.lang.Integerdelete from T_USERwhere ID #{id,jdbcTypeINTEGER}/deleteinsert idinsert parameterTypecom.cheney.demo.model.Userinsert into T_USER (ID, NAME, AGE)values (#{id,jdbcTypeINTEGER}, #{name,jdbcTypeVARCHAR}, #{age,jdbcTypeINTEGER})/insertinsert idinsertSelective parameterTypecom.cheney.demo.model.Userinsert into T_USERtrim prefix( suffix) suffixOverrides,if testid ! nullID,/ifif testname ! nullNAME,/ifif testage ! nullAGE,/if/trimtrim prefixvalues ( suffix) suffixOverrides,if testid ! null#{id,jdbcTypeINTEGER},/ifif testname ! null#{name,jdbcTypeVARCHAR},/ifif testage ! null#{age,jdbcTypeINTEGER},/if/trim/insertupdate idupdateByPrimaryKeySelective parameterTypecom.cheney.demo.model.Userupdate T_USERsetif testname ! nullNAME #{name,jdbcTypeVARCHAR},/ifif testage ! nullAGE #{age,jdbcTypeINTEGER},/if/setwhere ID #{id,jdbcTypeINTEGER}/updateupdate idupdateByPrimaryKey parameterTypecom.cheney.demo.model.Userupdate T_USERset NAME #{name,jdbcTypeVARCHAR},AGE #{age,jdbcTypeINTEGER}where ID #{id,jdbcTypeINTEGER}/update
/mapper4. 详细介绍 generatorConfig.xml plugin 提供了一些列插件来扩展其功能供我们使用 CacheNamespacePlugin为生成的 Mapper 接口Kotlin 或 Java添加 CacheNamespace 注解。CachePlugin为生成的 SQL 映射文件添加 元素。CaseInsensitiveLikePlugin为 Example 类添加方法以支持大小写不敏感的 LIKE 搜索。EqualsHashCodePlugin为 MBG 生成的 Java 模型对象添加 equals 和 hashCode 方法。FluentBuilderMethodsPlugin为生成的模型类添加流畅的构建器方法。IgnoreViewsPlugin在代码生成过程中过滤掉“VIEW”类型的表。MapperAnnotationPlugin为生成的 Mapper 接口添加 Mapper 注解。MapperConfigPlugin生成一个包含对 MBG 生成的 XML 映射文件的引用的 MapperConfig.xml 文件。RenameExampleClassPlugin通过重命名 MBG 生成的 Example 类来演示 initialized 方法的用法。RowBoundsPlugin为 selectByExample 方法添加接受 RowBounds 参数的新版本。SerializablePlugin为 MBG 生成的 Java 模型类添加 java.io.Serializable 标记接口。ToStringPlugin为生成的模型类添加 toString() 方法 commentGenerator 用于生成MyBatis GeneratorMBG生成的各种元素的注释包括Java字段、Java方法、XML元素等 suppressAllComments用于指定MBG是否在生成的代码中包含任何注释。你可以将其设置为true来禁用所有注释或者保持默认值false来包含所有生成元素的注释suppressDate用于指定MBG是否在生成的注释中包含生成时间戳。你可以将其设置为true来禁用时间戳或者保持默认值false来包含生成时间戳addRemarkComments用于指定MBG是否在生成的注释中包含数据库表和列的备注信息。你可以将其设置为true来包含表和列的备注信息或者保持默认值false来不包含表和列的备注信息dateFormat用于指定生成的注释中的日期格式。你可以自定义日期格式也可以使用默认的java.util.Date格式useLegacyGeneratedAnnotation用于指定是否使用来自已弃用的“javax”命名空间的注解。在JDK 9中建议使用“jakarta”命名空间。你可以将其设置为true或false jdbcConnection 配置数据库连接 driverClass属性指定了JDBC驱动程序的完全限定类名 connectionURL属性指定了连接数据库的JDBC连接URL userId属性指定了连接数据库的用户名 password属性指定了连接数据库的密码 javaModelGenerator 配置 Java 模型生成器 targetPackage指定生成的类所在的包targetProject指定生成的对象的目标项目 sqlMapGenerator 配置 SQL Map 生成器 enableSubPackages它用于控制是否为对象生成不同的Java包基于表的目录和模式 javaClientGenerator 配置 Java 客户端生成器 typeXMLMAPPER指定生成的 Java 接口和实现类将引用 MyBatis 的 XML 配置targetPackagetest.dao指定生成的接口和实现类所在的包targetProject\MBGTestProject\src指定生成的接口和实现类将保存在的项目目录 table 配置要生成的数据库表
5. 代码详细 https://github.com/cheney09/spring-practical-combat/tree/main/09/demo 总结
以上是使用 Spring MyBatis Generator 自动生成代码的简要步骤。这种方式可以帮助你更快速地搭建起数据库访问层的基础代码减少手写代码的工作量提高开发效率。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/924973.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!