一个java代码生成工具,支持hibernate,mybatis,jdbc三种数据持久层框架,标准的mvc模式代码
该工具按照MVC标准代码结构生成对应的Mapper.xml, Dao接口,Service接口和实现,Controller以及对应的CRUD页面,页面以jsp呈现。 目前支持的前端框架有dorado,基于bootstrap的adminLTE,beyondAdmin,可自行选择要生成什么模板页面。
WEB端与服务器端的交互方式支持MVC和restful风格,建议采用restful,方便后期改为纯前后端分离结构。
使用说明:
使用特别简单,只需要修改几个配置:
- 1、代码生成的目录,建议生成的代码文件不要直接保存到项目所在目录,防止覆盖或出错;
- 2、数据库连接的配置,如数据库IP、用户和密码;
- 3、若要按模块生成,则添加几个对应的Model标签,在各标签内配置要生成的数据表名即可
具体配置请参考:resource/config.xml
<?xml version="1.0" encoding="UTF-8"?> <!-- 配置示例说明 --> <configure> <basedir>F:/code</basedir> <basePackage>com.mars</basePackage> <!-- 使用的模板框架,可以选择adminLTE,beyoneAdmin,默认为beyondAdmin --> <theme>adminLTE</theme> <!-- 数据库连接配置 --> <db> <dbName>database name</dbName> <user>user</user> <pwd>password</pwd> <driver>com.mysql.jdbc.Driver</driver> <url>jdbc:mysql://localhost:3306/database_name?useUnicode=true&characterEncoding=utf-8</url> </db> <!-- 需要忽略生成到entity的字段 --> <!-- 对于一般稍大型的系统,有很多数据表有相同的字段,如创建人、创建时间、修改人、修改时间、数据状态等, 这些可能使用统一的父类字段属性,那么这些字段可以在生成配置文件的时候进行忽略而不显示 --> <ignoreColumns> create_user,create_time,update_user,update_time,state,note,com_id </ignoreColumns> <!-- 包名配置 --> <packageSetting> <actionPackage>action</actionPackage> <daoPackage>dao</daoPackage> <daoImplPackage>impl</daoImplPackage> <servicePackage>service</servicePackage> <serviceImplPackage>impl</serviceImplPackage> <entityPackage>entity</entityPackage> <mapperPackage>mapper</mapperPackage> <viewPackage>view</viewPackage> <!-- 是否删除表前缀,全局配置 --> <isDeleteTablePrefix>true</isDeleteTablePrefix> </packageSetting> <module> <!-- 数据持久层框架,可选:mybatis,hibernate,jdbc,jpa --> <persistance>mybatis</persistance> <!-- 模块名称,该模块会根据自动生成一个包,相关的dao, service,entity,action等都会生成在该包里面 --> <name>wap</name> <!-- 是否删除表前缀,如果为true,则在table里面设置的表前缀名称就会被自动删除 --> <isDeleteTablePrefix>true</isDeleteTablePrefix> <!-- 文件保存路径,默认为全局配置的目录,这里可以单独指定保存目录 --> <savePath></savePath> <!-- 采用的数据交互架构,可选:mvc, rest, dorado --> <framework>mvc</framework> <!-- 以下为要生成代码的数据库表,支持嵌套 --> <!-- table标签属性说明 name: 表名 prefix : 表前缀 entityName 生成的实体类名 parentField: 如果是主从表,则从表需设置该属性,表示父表的关联属性 refType: 表关联类型,在子表中配置,分为OneToOne,OneToMany等,用于持久层为hibernate或jpa的entity,如果与父表的关系是多对一,则会在父表对应的 entity中生成该子表的List集合属性 --> <table name="cms_category" entityName="Category" prefix="cms_"> <table name="cms_article" entityName="Article" prefix="cms_" parentField="cat_id" refType="OneToMany"/> </table> <table name="cms_comment"/> </module> </configure>