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的实例函数及详解

     

     

     

     

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法训练 排列问题
    Java实现 蓝桥杯VIP 算法训练 排列问题
    Java实现 蓝桥杯VIP 算法训练 排列问题
    Java实现 蓝桥杯VIP 算法训练 排列问题
    关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息(对对WM_INITMENUPOPUP消息的处理)
  • 原文地址:https://www.cnblogs.com/Guhongying/p/10837426.html
Copyright © 2011-2022 走看看