有了逆向工程,单表的增删改查以及相关的实体类,还有属性注释都不用自己写了,都可以自动化生成,只需如下三步即可
逆向工程的优点是:自动化生成实体类和对应的增删改查,效率相对于之前个人开发时一个个写增删改查要高的多
逆向工程的缺点是:xml中的sql语句加入了mybatis自身的动态sql和一大堆判断等,对于对动态sql不是十分熟练的人而言,以后再功能扩展上会很困难
注意:运行成功后记得刷新下,否则看不到
一、导包(如下包导对,成功80%)
二、新建generator.xml文件,进行配置
<?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"> ???????<property name="javaFileEncoding" value="UTF-8"/> ???????<commentGenerator> ???????????<!-- 是否去除自动生成的注释 true:是 : false:否 --> ???????????<property name="suppressAllComments" value="true" /> ???????</commentGenerator> ???????<!--数据库连接的信息:驱动类、连接地址、用户名、密码 --> ???????<jdbcConnection driverClass="com.mysql.jdbc.Driver" ???????????connectionURL="jdbc:mysql://localhost:3306/pms" userId="root" ???????????password="1234"> ???????</jdbcConnection> ???????<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 ????????????NUMERIC 类型解析为java.math.BigDecimal --> ???????<javaTypeResolver> ???????????<property name="forceBigDecimals" value="false" /> ???????</javaTypeResolver> ???????<!-- targetProject:生成model类的位置 --> ???????<javaModelGenerator targetPackage="cn.pms.model" ???????????targetProject=".\src"> ???????????<!-- enableSubPackages:是否让schema作为包的后缀 --> ???????????<property name="enableSubPackages" value="false" /> ???????????<!-- 从数据库返回的值被清理前后的空格 --> ???????????<property name="trimStrings" value="true" /> ???????</javaModelGenerator> ???????<!-- targetProject:mapper映射文件生成的位置 --> ???????<sqlMapGenerator targetPackage="mapper" ???????????targetProject=".\src"> ???????????<!-- enableSubPackages:是否让schema作为包的后缀 --> ???????????<property name="enableSubPackages" value="false" /> ???????</sqlMapGenerator> ???????<!-- targetPackage:mapper接口生成的位置 --> ???????<javaClientGenerator type="XMLMAPPER" ???????????targetPackage="cn.pms.mapper" ???????????targetProject=".\src"> ???????????<!-- enableSubPackages:是否让schema作为包的后缀 --> ???????????<property name="enableSubPackages" value="false" /></javaClientGenerator> ??????????????????<!-- 指定数据库表 --> ???????<table schema="" tableName="hotel" domainObjectName="Hotel"></table> ???</context></generatorConfiguration>
三、写测试类
import java.io.File;import java.util.ArrayList;import java.util.List;import org.mybatis.generator.api.MyBatisGenerator;import org.mybatis.generator.config.Configuration;import org.mybatis.generator.config.xml.ConfigurationParser;import org.mybatis.generator.internal.DefaultShellCallback;public class GeneratorSqlmap { ???public void generator() throws Exception{ ???????List<String> warnings = new ArrayList<String>(); ???????boolean overwrite = true; ???????//指定 逆向工程配置文件 ???????File configFile = new File("src/generatorConfig.xml"); ????????ConfigurationParser cp = new ConfigurationParser(warnings); ???????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(); ???????} ???????????}}
四、运行后的结果为下图所示表明成功了
mybatis逆向工程之动态web项目
原文地址:https://www.cnblogs.com/youcong/p/8232536.html