mybatis3.0提供了代码生成的功能.目前最新的是mybatis-generator-core-1.3.1.这是一个比较灵活的插件.当然不是IDE集成的,只是一个包.可以在命令行中使用,也可以用Ant,Maven甚至直接写到Java代码中来实现MyBatis代码的生成.如果它还是不满足则可以进行拓展.有了它就可以在使用建模工具生成数据库之后,连接数据库来生成相应的基础代码.包括了值对象,数据访问对象的接口及其MyBatis实现.
个人还是喜欢用Ant的方式.下面就用Ant生成的方式来说明.首先写个Ant文件来声明一些属性和几个Target.这些Target对于要生成的模块.分成多个模块便于管理和编译.
build.xml:
- <?xml version="1.0"?>
- <project default="sysGenerator" basedir=".">
- <property name="generated.source.dir" value="${basedir}" />
- <target name="sysGenerator" description="mybatis-generator">
- <taskdef name="sysGenerator"
- classname="org.mybatis.generator.ant.GeneratorAntTask"
- classpath="../Common_lib/mybatis-generator-core-1.3.1.jar" />
- <sysGenerator overwrite="true" configfile="sysGenerator.xml" verbose="false" >
- <propertyset>
- <propertyref name="generated.source.dir"/>
- </propertyset>
- </sysGenerator>
- </target>
- </project>
首先定义了一个名称为sysGenerator的Target.实际操作中可以按模块创建多个.它有个taskdef 定义的是任务的类型和要引用到的包.然后就是它的正文内容.configfile就是配置生成代码的信息.个人建议按照系统分模块.下面看看sysGenerator.xml这个文件的内容
- <generatorConfiguration>
- <classPathEntry location="../Common_lib/mysql-connector-java-5.0.4-bin.jar" />
- <context id="sysGenerator" targetRuntime="MyBatis3">
- <commentGenerator>
- <property name="suppressAllComments" value="true" />
- </commentGenerator>
- <jdbcConnection driverClass="com.mysql.jdbc.Driver"
- connectionURL="jdbc:mysql://localhost:3306/leestyle?useUnicode=true&characterEncoding=utf8"
- userId="root" password="">
- </jdbcConnection>
- <!-- Model生成到什么位置-->
- <javaModelGenerator targetPackage="cn.lihk.leestyle.sys.vo"
- targetProject="./src">
- <property name="enableSubPackages" value="true" />
- <property name="trimStrings" value="true" />
- </javaModelGenerator>
- <!-- sqlMap*.xml生成的位置-->
- <sqlMapGenerator targetPackage="cn.lihk.leestyle.sys.dao.mapper"
- targetProject="./src">
- <property name="enableSubPackages" value="true" />
- </sqlMapGenerator>
- <!-- 客户端应用接口生成的位置(DAO Interface)-->
- <javaClientGenerator type="XMLMAPPER"
- targetPackage="cn.lihk.leestyle.sys.dao" targetProject="./src">
- <property name="enableSubPackages" value="true" />
- </javaClientGenerator>
- <table tableName="SYS_MENU" enableCountByExample="false"
- enableUpdateByExample="false" enableDeleteByExample="false"
- enableSelectByExample="false" selectByExampleQueryId="false">
- <generatedKey column="SYS_MENU_ID" sqlStatement="select uuid()"
- identity="true" />
- </table>
- </context>
- </generatorConfiguration>
这个配置文件提供了 mybatis-generator所需要的参数信息: * 其中classPathEntry 是引用的jdbc的类路径,这里将jdbc jar和generator的jar包放在一起了; * commentGenerator 是用来除去时间信息的,这在配合类似subversion的代码管理工具时使用很有效,因为可以减少没有必要的注释迁入; * jdbcConnection是指定的jdbc的连接信息; * javaTypeResolver式类型转换的信息,这里并没有用到; * javaModelGenerator是模型的生成信息,这里将指定这些Java model类的生成路径; * sqlMapGenerator是mybatis 的sqlMapper XML文件的生成信息,包括生成路径等; * javaClientGenerator是应用接口的生成信息; * table是用户指定的被生成相关信息的表,它必须在指定的jdbc连接中已经被建立。
其实想要mybaits代码生成器生成Example类换个名字,是通过插件实现的,即下面的这个插件配置参数很关键。 <plugin type="org.mybatis.generator.plugins.RenameExampleClassPlugin"> <property name="searchString" value="Example$" /> <property name="replaceString" value="Criteria" /> </plugin> 如果不喜欢生成的代码中带有代理的mybatis代码生成器的注解信息,可以配置下面的配置参数关闭注解信息的生成: <commentGenerator> <property name="suppressAllComments" value="true" /> </commentGenerator>
如上述代码generatorConfiguration这个根元素下面包含了2个节点.classPathEntry是数据库驱动的位置.context是具体生成规则的配置.generatorConfiguration可以包含多个context节点.context节点有个id属性是必须的官方的说法是:A unique identifier for this context. This value will be used in some error messages.属性targetRuntime是可选的.默认是MyBatis3.另外2个值是Ibatis2Java2和Ibatis2Java5具体意义可查阅文档.commentGenerator是配置注释情况的节点.个人觉得这个注释生成比较难看,于是去掉了.jdbcConnection配置的是数据库连接.javaModelGenerator是值对象的生成,sqlMapGenerator生成SQL的配置文件.当然是简单的语句复杂的操作还是自己写比较靠谱.javaClientGenerator 生成与SQL配置文件对应的接口.table是需要生成的表.enableCountByExample等属性如果是true的话会生成一些Example类,虽说是方便,但是个人不是很喜欢.于是去掉,它生成的代码还是具备参考意义的.generatedKey代表的是插入的时候是否生成主键,它的sqlStatement属性是配置生成主键的语句.这个可以定制确实是方便,因为有的项目主键规则是用一张表来维护的,跟数据库自身的生成规则的无关的.table可以有多个.这边只是为了节省篇幅.
有了这个生成方法.在PowerDesigner进行数据建模后直接生成数据库,然后用它生成值对象和数据访问层的代码,煞是节省时间.想想一张表要是出现了60几个字段,那重复写那些字段岂不是要写到崩溃.简单重复的动作通通交给它来生成.复杂的操作.由编码人员自己来进行定制.提升开发效率.
相关推荐
mybatis-generator-core则是一个代码生成工具,可以根据数据库表自动生成Mapper、实体类和XML配置文件,大大提高了开发效率。 5. **其他依赖**:asm-5.0.4.jar、cglib-nodep-3.2.5.jar、ognl-3.1.24.jar这三个库是...
如果是使用传统的构建工具如Ant或直接在项目中加入jar,需下载对应版本的mybatis-x.x.x.jar文件,并将其放置在项目的类路径(classpath)中。如果使用Maven构建项目,则需要在项目的pom.xml文件中添加依赖声明: ```...
#### 开发环境 - 语言:Java 8 - IDE(JAVA): IDEA安装lombok插件 - IDE(前端): WebStorm 或者 IDEA - 依赖管理:Maven - 数据库:MySQL5.7+ - 缓存:Redis或本地缓存 #### 后端 - 基础框架:Spring Boot ...
abator是IBATIS提供的一个自动化代码生成工具,它可以极大地提高开发效率,减少手动编写SQL映射文件和DAO接口的工作量。使用abator,只需简单几步,就能根据数据库表结构自动生成对应的Java实体类、Mapper接口、...
Spring Security5 认证和授权框架MyBatisPlus3.3.1 基于 MyBatis 框架的快速研发框架MyBatisCode工具 生成 MyBatis 相关代码Jackson 提供了处理 JSON 数据的工具Lombok 简化对象封装工具 Druid 数据库...
而“强大的代码生成器”可能是一个工具,能够自动生成前后端的代码,极大地提高了开发效率。 【标签】"java" 明确指出这个项目的核心编程语言是 Java,Java 以其跨平台和丰富的类库被广泛用于服务器端开发,尤其是...
6. **代码生成器**:内置的代码生成器可以自动生成基本的CRUD操作代码,大大提高了开发效率。 7. **日志记录**:提供了完善的日志记录和查询功能,方便后期问题排查和系统维护。 8. **API文档生成**:自动化的API...
【Archer开发手册】主要介绍了Archer这一代码生成器,它是BladeX系列的一个独立组件,专注于业务建模和模板编写。Archer允许开发者在线配置并立即生效,以生成各种业务代码,理论上适用于任何场景。此外,文档还提到...
描述中提到,这个压缩包内是针对Spring 5.1.6版本和MyBatis 3.5.1版本的整合,因此,它特别适用于那些需要在Java 8或更高版本环境下运行的项目。 首先,Spring框架是Java企业级应用开发的核心工具,5.1.6是其一个...
5. **mybatis-spring-1.3.2.jar**:这是MyBatis与Spring框架的整合包,它使得在Spring应用中使用MyBatis变得更加方便,通过Spring的依赖注入特性,可以轻松地将MyBatis的SqlSession和Mapper配置到Spring的Bean中。...
4. **开发工具(Ant、Maven、Gradle)**: 这些是Java项目构建工具,用于自动化构建、测试和部署过程。Ant基于XML定义任务,Maven和Gradle则引入更先进的依赖管理和插件系统。 5. **Spring框架**: Spring是Java企业...
"renren-fastplus"是一个基于Java技术的快速开发平台,旨在提高开发效率并降低项目实施的...通过对这些技术的整合和优化,"renren-fastplus"降低了项目开发的门槛,提高了团队协作的效率,是构建企业级应用的理想选择。
SSM(Spring、Struts、MyBatis)整合是一个常见的Java Web开发模式,涉及到多个框架的集成。在SSM整合中,每个框架都需要相应的库文件,即jar包,以实现其功能。以下是对文档中提到的一些关键jar包及其作用的详细...
【后端技术】技术 说明Spring Boot2 MVC框架 开发的一站式解决方案Spring Security5 认证和授权框架MyBatisPlus3.3.1 基于 MyBatis 框架的快速研发框架MyBatisCode工具 生成 MyBatis 相关代码Jackson 提供了处理 ...
- **项目简介**:Guns是一个基于Spring Boot的简洁后台管理系统,它完美地整合了Spring MVC、Shiro、MyBatis-Plus、Beetl、Flowable等多个流行的技术组件。 - **技术栈**:以Spring Boot为核心,集成Shiro进行权限...
SSM(Spring、Struts、MyBatis)整合是Java Web开发中常见的技术栈,其中涉及到多个组件和库的集成。在SSM整合过程中,jar包的选择和作用至关重要,它们构成了整个框架的基础。以下是对部分关键jar包的详细说明: 1...
这是一个基于Java技术栈的开发示例项目,名为“demo母版”,它整合了Gradle构建工具、Spring Boot应用框架、Freemarker模板引擎以及PageHelper分页插件。这个项目旨在提供一个快速启动的开发环境,帮助开发者了解并...
9. **版本控制**:开发过程中,项目代码很可能使用Git进行版本控制,便于团队协作和代码管理。 10. **测试与部署**:系统可能包含单元测试、集成测试等,确保各个功能的正确性。部署时,可能使用Tomcat或Jetty等...