zoukankan      html  css  js  c++  java
  • Eclipse maven项目中使用mybatis逆向工程

    学习ssm项目整合的童鞋,推荐一个尚硅谷的视频教程,整的很不错。以下是个人在学习mybatis逆向工程时的记录。

    使用mybatis时需要,

    1.对应数据库表字段的java实体类(也叫作bean?或者是pojo?)

    2.dao层的接口,有多少张表就有多少个接口,每个接口对应一张数据表的操作,比如增删改查;一般,dao层只是写接口,不写具体的实现,具体的操作实现要么写与之对应的接口实现类,要么在mapper配置文件中实现。

    3.mapper配置文件,在mybatis中使用的是xml文件来实现接口定义的数据库的操作;其他的也有手写接口实现类的。

    三个层次结构大致如下:(当然,这是已经使用mybatis generator自动生成后的目录了)

     

     

    MyBatis Generator官方文档

     

    因为是在maven项目中,所以先在pom.xml文件中引入相关的依赖,下面的配置文件中有一些多余的部分。

     1 <project xmlns="http://maven.apache.org/POM/4.0.0"
     2     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     3     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     4     <modelVersion>4.0.0</modelVersion>
     5     <groupId>com.example.mbgs</groupId>
     6     <artifactId>mbgenerator</artifactId>
     7     <packaging>war</packaging>
     8     <version>0.0.1-SNAPSHOT</version>
     9     <name>mbgenerator Maven Webapp</name>
    10     <url>http://maven.apache.org</url>
    11 
    12 
    13     <dependencies>
    14         <dependency>
    15             <groupId>junit</groupId>
    16             <artifactId>junit</artifactId>
    17             <version>3.8.1</version>
    18             <scope>test</scope>
    19         </dependency>
    20 
    21         <!-- Mybatis -->
    22         <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    23         <dependency>
    24             <groupId>org.mybatis</groupId>
    25             <artifactId>mybatis</artifactId>
    26             <version>3.4.2</version>
    27         </dependency>
    28 
    29         <!-- 数据库连接池以及驱动 -->
    30         <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
    31         <dependency>
    32             <groupId>com.mchange</groupId>
    33             <artifactId>c3p0</artifactId>
    34             <version>0.9.5.2</version>
    35         </dependency>
    36 
    37         <!-- MySql Connector -->
    38         <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    39         <dependency>
    40             <groupId>mysql</groupId>
    41             <artifactId>mysql-connector-java</artifactId>
    42             <version>8.0.13</version>
    43         </dependency>
    44 
    45         <!-- JSTL 等 -->
    46         <!-- https://mvnrepository.com/artifact/jstl/jstl -->
    47         <dependency>
    48             <groupId>jstl</groupId>
    49             <artifactId>jstl</artifactId>
    50             <version>1.2</version>
    51         </dependency>
    52 
    53         <!-- MBG -->
    54         <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
    55         <dependency>
    56             <groupId>org.mybatis.generator</groupId>
    57             <artifactId>mybatis-generator-core</artifactId>
    58             <version>1.3.5</version>
    59         </dependency>
    60 
    61     </dependencies>
    62 
    63 
    64     <build>
    65         <!-- java编译插件 -->
    66         <!-- eclipse默认使用的jdk是1.5的 -->
    67         <plugins>
    68             <plugin>
    69                 <groupId>org.apache.maven.plugins</groupId>
    70                 <artifactId>maven-compiler-plugin</artifactId>
    71                 <version>3.2</version>
    72                 <configuration>
    73                     <source>1.8</source>
    74                     <target>1.8</target>
    75                     <encoding>UTF-8</encoding>
    76                 </configuration>
    77             </plugin>
    78         </plugins>
    79     </build>
    80 </project>
    View Code

     

    接着就是要写Mybatis Generator的配置文件了,在项目的直接目录下新建一个xml文件,命名无所谓,之后参考官方给出的xml配置实例来写

    相关配置标签及其左右都可以在文档左侧查找,或者点击这里

    具体的配置如下(只是部分配置,备注有相关的说明)

    mbg.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="DB2Tables" targetRuntime="MyBatis3">
    
            <!-- 配置生成的实体类的注释问题,设置为true不生成 ,如果不设置的话会默认生成很多的注释-->
            <commentGenerator>
                <property name="suppressAllComments" value="true" />
            </commentGenerator>
            
            <!-- 配置连接数据库,注意下面的driverClass,不同版本的数据库驱动不同的 -->
            <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                connectionURL="jdbc:mysql://localhost:3306/ssm_curd" userId="root"
                password="root">
            </jdbcConnection>
    
            <javaTypeResolver>
                <property name="forceBigDecimals" value="false" />
            </javaTypeResolver>
    
            <!-- 指定javabean的生成位置 -->
            <javaModelGenerator
                targetPackage="com.example.curd.bean" targetProject=".srcmainjava">
                <property name="enableSubPackages" value="true" />
                <property name="trimStrings" value="true" />
            </javaModelGenerator>
    
            <!-- 指定sql映射文件的生成位置 -->
            <sqlMapGenerator targetPackage="mapper"
                targetProject=".srcmain
    esources">
                <property name="enableSubPackages" value="true" />
            </sqlMapGenerator>
    
    
            <!-- 指定dao接口生成的位置,mapper接口,targetPackage是预生成的包,targetProject是目录 -->
            <javaClientGenerator type="XMLMAPPER"
                targetPackage="com.example.curd.dao" targetProject=".srcmainjava">
                <property name="enableSubPackages" value="true" />
            </javaClientGenerator>
    
    
            <!-- table指定每个表的生成策略 ,后面的domainObjectName是前面的tableName表要生成的javaBean的名字-->
            <table tableName="tbl_emp" domainObjectName="Employee">
            </table>
            <table tableName="tbl_dept" domainObjectName="Department">
            </table>
    
        </context>
    </generatorConfiguration>
    View Code

    大概的配置已经差不多了,那么要怎样运行生成呢?官方给出的有几种方法:Running MyBatis Generator ,

    此处使用的是java program 和xml的方法

    新建一个java类,内容如下:

    package com.example.curd.test;
    
    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 MBGTest {
    
        public static void main(String[] args) throws Exception {
            List<String> warnings = new ArrayList<String>();
            boolean overwrite = true;
            File configFile = new File("mbg.xml");     //你的mybatis generator 配置文件名
            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);
        }
    }

    写完后run as java application就可以了,如果成功的话,控制台是看不到输出信息的,接着刷新一下项目,就可以看到自动生成的内容了。

    至于生成的各个文件及其作用请看MyBatis的Mapper接口以及Example的实例函数及详解

     

     

     

     

  • 相关阅读:
    DOM 获取元素,设置样式
    js检查浏览器内核版本信息
    获取浏览器可视屏幕宽度
    swift 闭包+嵌套函数+extension+单例+嵌套函数+??
    HTTP请求错误大全
    Swift:网络库Alamofire
    Swift 值类型和引用类型
    Swift URL Schemes使用
    Swift编程规范
    swift系统学习控件篇:UITableView+UICollectionView
  • 原文地址:https://www.cnblogs.com/Guhongying/p/10837426.html
Copyright © 2011-2022 走看看