zoukankan      html  css  js  c++  java
  • MyBatis逆向工程

    以前每次用MyBatis,都是自己手工写MyBatis的Mapper接口和Mapper.xml文件,自从发现有了MyBatis逆向工程后,在配置文件中写好数据库连接信息以及要逆向的表之后,写上几行代码,运行代码,MyBatis的Mapper接口和Mapper.xml文件一秒生成,极大的提高了效率,简直太酷了;

    通过MyBatis逆向工程生成Mapper接口和Mapper.xml文件的步骤如下:

    1、下载MyBatis逆向工程包mybatis-generator-core-1.3.2.jar和mybatis的jar包;

    2、在数据库中建好库和表,这里以MySql为例,在MySql中建好库和表;

    3、新建java工程项目,导入mybatis-generator-core-1.3.2.jar和相关Mybatis的jar包;

    4、添加配置文件generatorConfig.xml,内容如下:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
     3 
     4 <generatorConfiguration>
     5     <context id="testTables" targetRuntime="MyBatis3">
     6         <commentGenerator>
     7             <!-- 是否去除自动生成的注释 true:是 : false:否 -->
     8             <property name="suppressAllComments" value="true" />
     9         </commentGenerator>
    10         <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
    11         <jdbcConnection driverClass="com.mysql.jdbc.Driver"
    12             connectionURL="jdbc:mysql://localhost:3306/test" userId="root"
    13             password="123">
    14         </jdbcConnection>
    15 
    16         <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 
    17             NUMERIC 类型解析为java.math.BigDecimal -->
    18         <javaTypeResolver>
    19             <property name="forceBigDecimals" value="false" />
    20         </javaTypeResolver>
    21 
    22         <!-- targetProject:生成PO类的位置 -->
    23         <javaModelGenerator targetPackage="com.xupt.sm.po"
    24             targetProject=".src">
    25             <!-- enableSubPackages:是否让schema作为包的后缀 -->
    26             <property name="enableSubPackages" value="false" />
    27             <!-- 从数据库返回的值被清理前后的空格 -->
    28             <property name="trimStrings" value="true" />
    29         </javaModelGenerator>
    30         <!-- targetProject:mapper映射文件生成的位置 -->
    31         <sqlMapGenerator targetPackage="com.xupt.sm.mapper" 
    32             targetProject=".src">
    33             <!-- enableSubPackages:是否让schema作为包的后缀 -->
    34             <property name="enableSubPackages" value="false" />
    35         </sqlMapGenerator>
    36         <!-- targetPackage:mapper接口生成的位置 -->
    37         <javaClientGenerator type="XMLMAPPER"
    38             targetPackage="com.xupt.sm.mapper" 
    39             targetProject=".src">
    40             <!-- enableSubPackages:是否让schema作为包的后缀 -->
    41             <property name="enableSubPackages" value="false" />
    42         </javaClientGenerator>
    43         <!-- 指定数据库表 -->
    44         <table tableName="addresses"></table>
    45         <table tableName="course_enrollment"></table>
    46         <table tableName="courses"></table>
    47         <table tableName="students"></table>
    48         <table tableName="tutors"></table>                
    49     </context>
    50 </generatorConfiguration>

    其中jdbcConnection部分修改成自己本机的数据库连接配置和用户名密码,javaModelGenerator中的targetProject为生成PO实体类文件的目录,默认为src目录,一般保持默认即可, targetPackage指定了生成PO实体类文件的包名,修改成自己的包名即可,sqlMapGenerator中的targetProject和targetPackage指定了mapper文件生成的目录和包名,javaClientGenerator中的targetProject和targetPackage指定了mapper接口文件生成的目录和包名;最地下的table信息指定了要逆向的表名,有多少个写多少个;

    5、新建类GeneratorSqlmap并编写代码:

     1 public class GeneratorSqlmap {
     2 
     3        public void generator() throws Exception{
     4               List<String> warnings = new ArrayList<String>();
     5               boolean overwrite = true;
     6               //指定 逆向工程配置文件
     7               File configFile = new File("generatorConfig.xml");
     8               ConfigurationParser cp = new ConfigurationParser(warnings);
     9               Configuration config = cp.parseConfiguration(configFile);
    10               DefaultShellCallback callback = new DefaultShellCallback(overwrite);
    11               MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
    12               myBatisGenerator.generate(null);
    13        }
    14 
    15        public static void main(String[] args) throws Exception {
    16               try {
    17                      GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
    18                      generatorSqlmap.generator();
    19               } catch (Exception e) {
    20                      e.printStackTrace();
    21               }            
    22        }
    23 }

    6、运行GeneratorSqlmap的main方法,刷新src目录,可以看到src目录下生成了对应的mapper接口文件,mapper.xml文件和PO实体类文件,然后在这些文件上修改少量代码即可;

  • 相关阅读:
    一例千万级pv高性能高并发网站架构[原创]
    Download SymmetricDS Data Sync Software for Free
    阿里巴巴开源项目:分布式数据库同步系统otter(解决中美异地机房)
    青云QingCloud业内率先支持云端全面透明代理功能 | SDNLAB | 专注网络创新技术
    UCloud EIP 你真的懂得如何使用么?
    MySQL高可用性大杀器之MHA | 火丁笔记
    Zookeeper、Solr和Tomcat安装配置实践
    Best Premium Private Proxy Service | Lime Proxies
    突破LVS瓶颈,LVS Cluster部署(OSPF + LVS)
    Nodejs负载均衡:haproxy,slb以及node-slb
  • 原文地址:https://www.cnblogs.com/laoxia/p/8327811.html
Copyright © 2011-2022 走看看