栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mybatis中由Dao层向mapper层演变的以及逆向工程详解[个人笔记]

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mybatis中由Dao层向mapper层演变的以及逆向工程详解[个人笔记]

在mybatis数据库开发过程中,一开始是先写dao ,pojo然后通过映射文件来完成数据库的操作;

一个简单的案例是---->>>

看起来就这么多,如果你想看一下本教程,可以直接移步-------

链接

mybatis逆向工程

由结果导向配置文件,正常情况下是由我们根据数据库文件编写pojo实体类,而mabatis逆向工程是通过一个mybatis-genertator-core核心包来实现自动生成pojo的一种实现;

下面简单来说一下generrator的配置------>>>
首先是表头---->>>>



表头没有什么好研究的,规定好了,
配置文件下的基本规则内容

配置生成器


   


具体的配置内容


context 标签的含义是生成一组对象的环境,唯一id必不可少

 

defaultModelType用于指定生成对象的样式,有三个可选值---->>>>

1,conditional:如果某张表只有一个字段,则不会生成pojo实体

2,flat:所有内容(主键,blob)等全部生成在一个对象中;也是最常用的

3,hierarchical:主键生成一个XXKey对象(key class),Blob等单独生成一个对象,其他简单属性在一个对象中(record class)

如果表中没有blob,则hierarchical 与flat的效果是一样的

targetRuntime:
1,MyBatis3:默认的值,生成基于MyBatis3.x以上版本的内容,包括XXXBySample;

2,MyBatis3Simple:类似MyBatis3,只是不生成XXXBySample;

introspectedColumnImpl:值为类全限定名,用于扩展MBG,即引入一个工具类用于扩展MBG

下面的配置基本是默认的,如果遇到某些情况可以修改一下,比如表字段与java关键字冲突时候;

      
        
        
        
        
        
        
        

        
        
        

关于注释的一些配置,当然可以自定义注释,要有类的实现,代码留作日后在讨论;

 
            
            
            
            
            
            
            
            
            
            
        

java数据库连接,在这里,开头generatorConfiguration可以引入一个外部文件,然后修改数据库时会很方便;这里并没有这么做,你知道就行;等案例的时候会采用外部配置的方式完成;

    
        

            
        
        

自定义数据库中数据处理类型,当然前提是需要有类型处理器的实现类或者继承类;

   
        
          
            
        

生成实体类—pojo 生成的位置以及其他配置


    
    
    
    

生成xml文件—mapper.xml

        
            
        

生成dao层接口

 
        
            
        

要操作的表----

    
        
        

当然,上面的配置内容不必全部都配置,挑选自己需要的就好了;

下面是我自己配置的






    
    
    

        
        
        
        
        
        
        
        
        

        
        
        

        
        
            
            
            
            
            
            
            
        

        
        
            
            
        

        
        
            
            
        


        

        
        
            
            

            
            

            
            

            
            
            
            
            
        


        
        
            
            
        


        

下面写测试类以生成需要的数据----

package GavinTest;

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class test {
    public static void main(String[] args) {
        List warnings = new ArrayList();
        boolean overwrite = true;
        String Cfg = "C:\Users\Gavin\IdeaProjects\comgavinreverse\src\main\resources\Generator-Config.xml";

        File configFile = new File(Cfg);
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = null;
        try {
            config = cp.parseConfiguration(configFile);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (XMLParserException e) {
            e.printStackTrace();
        }
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = null;
        try {
            myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        } catch (InvalidConfigurationException e) {
            e.printStackTrace();
        }
        try {
            myBatisGenerator.generate(null);
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

}

在生成时出现了一个错误,-----

原来是设置了继承了一个父类,

如果设置了该项,那么父类中有的属性不会在子类中再去生成了;

同时我们还可指定全参构造方法是否生成;

最后打印日志----->>

配置文件可以使得不生成映射文件,但是这种方式会使得代码维护修改sql,就比较…
即通过如下配置---->>>>>


一般是采用用混合的模式----即如下方式—

生成的目录结构

源代码放在这里了------>>>>

就是这里

对了,放一个标准的逆向工程配置文件供参考------->>





    
    
    

        
        

        
        
        
        
        
        
        

        
        
        

        
        
            
            
            
            
            
            
            
        

        
        
            
            
        

        
        
            
            
        


        

        
        
            
            

            
            

            
            

            

            
            
            
        




        
            
            
        


        
            
            

            
        

        
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/631276.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号