SSM项目中自动生成反向工程
来源:互联网 发布:鲁迅体 知乎 编辑:程序博客网 时间:2024/06/07 03:33
使用ssm项目编写代码时,可能会由于数据库表繁多而增加很多的工作量
所以我们使用代码和配置文件独立实现反向生成的工具类
所依赖的jar包
log4j-1.2.17.jar //log4j
mybatis-3.2.7.jar //mybatis核心包
mybatis-generator-core-1.3.2.jar // 反向生成核心包
ojdbc6.jar //数据库驱动包
工程的目录结构如下图:
package com.test.niubai;import java.io.File;import java.util.ArrayList;import java.util.List;import org.mybatis.generator.api.MyBatisGenerator;import org.mybatis.generator.config.xml.ConfigurationParser;import org.mybatis.generator.internal.DefaultShellCallback;/** * * @author liushao * 自动生成 实体类 mapper 和mapper.xml * */public class GeneratorSqlmap { public void generator() throws Exception{ List<String> warnings = new ArrayList<String>(); boolean overwrite = true; //指定 逆向工程配置文件 //这一步骤最为关键,指定了文件就自动生成了 File configFile = new File("generatorConfig.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); org.mybatis.generator.config.Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } public static void main(String[] args) throws Exception { try { GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap(); generatorSqlmap.generator(); } catch (Exception e) { e.printStackTrace(); } }}
除此之外我们还需要一个配置文件,用以连接数据库以及确定代码生成的位置
注意:配置文件要放在工程目录下,与src同级
<?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> <context id="testTables" targetRuntime="MyBatis3"> <commentGenerator> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="true" /> </commentGenerator> <!--数据库连接的信息:驱动类、连接地址、用户名、密码 --> <!-- <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mybatis" userId="root" password="mysql"> </jdbcConnection>--> <jdbcConnection driverClass="oracle.jdbc.OracleDriver" connectionURL="jdbc:oracle:thin:@localhost:1521:orcl" userId="myshoes" password="admin"> </jdbcConnection> <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal --> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- targetProject:生成PO类的位置 --> <javaModelGenerator targetPackage="com.shoes.entity" targetProject=".\src"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> <!-- 从数据库返回的值被清理前后的空格 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- targetProject:mapper映射文件生成的位置 --> <sqlMapGenerator targetPackage="com.shoes.mapper" targetProject=".\src"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- targetPackage:mapper接口生成的位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.shoes.mapper" targetProject=".\src"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 指定数据库表 --> <table tableName="administrator"></table> <table tableName="permission"></table> <table tableName="repertory"></table> <table tableName="categorys"></table> <table tableName="salshop"></table> <table tableName="userss"></table> <table tableName="receiving"></table> <table tableName="ordersitem"></table> <table tableName="orders"></table> <table tableName="cart"></table> <table tableName="comments"></table> <table tableName="visites"></table> <table tableName="sal"></table> <!-- <table schema="" tableName="sys_user"></table> <table schema="" tableName="sys_role"></table> <table schema="" tableName="sys_permission"></table> <table schema="" tableName="sys_user_role"></table> <table schema="" tableName="sys_role_permission"></table> --> <!-- 有些表的字段需要指定java类型 <table schema="" tableName=""> <columnOverride column="" javaType="" /> </table> --> </context></generatorConfiguration>
这些都完成后,在工具类中右键运行就可以。
你就会很神奇的发现所有的Mapper接口和xml文件都写好了!!
如果没有出现实体类,尝试右键刷新工程。
这样做的弊端是,只能生成单个表的相关数据库操作,无法映射数据库之间的关系。
阅读全文
0 0
- SSM项目中自动生成反向工程
- SSM框架反向自动生成Mapper等
- ssm+maven项目配置mapper 自动生成
- SSM反向工程代码详解
- MyEclipse中利用Hibernate反向工程生成Java Web项目的实体类
- 反向工程--Visio 2007自动生成ER图
- 反向工程--Visio 2007自动生成ER图
- myeclipse jpa项目反向工程生成spring相关的类
- 配置maven ssm项目自动生成bean 访问不了数据库
- powerdesigner生成数据库或反向工程中出现的问题
- 导入别人的项目时,工程中不自动生成Android Dependencies的解决方式
- 导入非本机ide生成的项目时,工程中不自动生成Android Dependencies的解决方式
- 自动生成带Optional方法的派生Bean类,对Mybatis反向工程结果的加强
- 使用rebar构建工程、执行单元测试、自动生成项目文档
- 自动删除-IAR项目工程生成垃圾文件的工具
- 在使用Mybatis框架的JavaWeb项目中通过Mybatis Generator逆向工程自动生成Java类文件
- 在eclipse中生成android项目工程生成apk包
- maven根据工程生成archetype,并反向生成工程
- Spring Boot 使用Oracle集成Mybatis,驼峰映射(下划线)问题
- [组合] Codeforces #575H. Bots
- 2017年中国家用电器技术大会,物联网+人工智能将对家电产业产生新价值
- redis auth
- 如何得到服务器当前时间
- SSM项目中自动生成反向工程
- Canvas的transform详解
- c/c++中string与char的区别
- ZooKeeper系列(四) Zookeeper的应用实践
- 创业 人生 价值
- react-native调用安卓代码-高级应用
- Tomcat启动监听器
- 设置View平移动画:显示时从下往上显示,消失时从上往下消失,并且背景变暗,不可点击
- 关于iframe自适应高度的解决方案