还是觉得看书学习有意思~嘿嘿。今天把mybatis给结束掉。  

                  --WZY

一、什么是逆向工程?

      简单点说,就是通过数据库中的单表,自动生成java代码。

      Mybatis官方提供了逆向工程,可以针对单表自动生成mybatis代码(mapper.java\mapper.xml\po类)

      企业中,逆向工程是个很常用的工具,之前我们就学习了hibernate的逆向工程,比我们手动创建映射文件的配置信息方便很多,

二、下载逆向工程

      jar包下载

            

            

三、创建java工程

      此步骤截图略,

四、添加jar包

      逆向工程jar包,mybatis-generator-core-1.3.2.jar,每个人版本不一样,这里不一定就完全相同

      数据库驱动包,使用的是mysql

            

五、创建核心代码

      点击进入jar包的docs目录下找到index.html来查询复制核心代码。

              

      点击index.html进入

              

      给出核心代码方便日后直接复制

   List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("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);

核心代码

六、创建generatorConfig.xml配置文件

      根据上面的核心代码,仔细看一下不难发现,其运行需要加载一个generatorConfig.xml配置文件,在index.html中也有该配置文件的模版。

                

      这个也比较清楚,下面有什么不懂的都有做出解释,但是我们不这样直接复制,我给出一份好的,有注释的,日后直接复制改点数据即可

                

                

      在我上面框出来的地方就是需要修改的地方,根据自己的实际情况来进行修改,并且这里的配置文件是将数据库中的user、orders、orderdetail、items这四张表进行逆向,配置文件中需要指定需要逆向生成的表的名称

<?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">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/test" userId="root"
password="root">
</jdbcConnection> <!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver" connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg"
userId="yycg" password="yycg"> </jdbcConnection> --> <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL
和 NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver> <!-- targetProject:生成PO类的位置 -->
<javaModelGenerator targetPackage="com.wuhao.mt.domain"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="com.wuhao.mt.mapper"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.wuhao.mt.mapper" targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->
<table tableName="user"></table>
<table tableName="orders"></table>
<table tableName="orderdetail"></table>
<table tableName="items"></table>
</context>
</generatorConfiguration>

generatorConfig.xml

      注意核心代码中加载generatorConfig.xml的配置文件的位置需要写正确,根据你自己的存放位置进行相应的修改,并不是固定的。

七、目录结构

      完成核心代码和其配置文件之后的工程就成这样了,然后直接运行核心代码就会自动帮我们从数据库中指定的表生成mybatis的mapper类。

                

      运行Generator.java  

                

      

      这里需要注意一个问题,点击运行之后,就已经帮我们生成好了对应的类,但是我们需要手动刷新项目才看得见,有些人就会觉得看不见,以为没有生效,然后又第二次运行核心代码,这里就会出现一个很严重的问题,[Mapper.xml文件已经存在时,如果进行重新生成则mapper.xml文件时,内容不被覆盖而是进行内容追加,结果导致mybatis解析失败]

      解决办法:删除生成的所有类和mapper.xml,重新在运行一遍即可。

    

      生成之后的目录

                

      其他都不用说,说两个地方

        第一:mapper接口报错了,这里不用管,报的错的原因是缺少mybatis核心的jar包,和mapper接口中却用到了这些类,所以就会报错,

          解决:加入所需要jar包错误消失,但是我们不会这样做,因为这个项目就是用来生成mapper相关类的,加入jar包没什么用,多此一举,我们需要用的时候将其加入我们开发时的项目中,就不会在报错了。

        第二:生成的持久化对象中,多了一个xxxExample.java类,这个类是用来[构造复杂的筛选条件],通俗点讲就是[专门用来封装自定义查询条件],等会会介绍他的使用方法。

八、测试

      将我们逆向工程所生成的mapper相关的类和接口等东西都加入到我们开发的项目中来,进来实验,这里就不过多陈述了,不会的话,就看前几章节的mybatis的构建和使用

      目录

                

      这里我们将Items相关的类,都加入到与spring集成的项目中去,框起来的就是我们从逆向工程中获取到的。注意,逆向工程就是使用mapper方式进行开发,而不是dao方式

      测试,OrderMapperTest.java    

                

        //问题描述:查询出Items中name中有"记"字的记录,模糊查询,使用查询条件(xxxExample)
//获取applicationContext.xml配置并加载
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//获取ItemsMapper代码对象
ItemsMapper im = (ItemsMapper) ac.getBean("itemsMapper");
//封装查询条件的对象在该类(ItemsExample)中,所以先构造该对象
ItemsExample ie = new ItemsExample();
//通过ItemsExample的对象获取封装查询条件的对象Criteria
Criteria c = ie.createCriteria();
//构建查询条件,这里使用方法将其内部实现封装了,其实做的事情就是在
//sql语句的where后面加入: and name like "%记%"
c.andNameLike("%记%");
//通过im将查询条件传送进去。
List<Items> list = im.selectByExample(ie);
//查询出name为笔记本这条记录
System.out.println(list.get(0).getName());

模糊查询,使用xxxExample

                                  

九、总结

      这里就将mybatis的逆向工程给讲完了,一点都不难,一步步实现下去即可,关键是后的多的那个xxxExample类可能大家有一点不理解,下一篇文章会将其讲解清楚,详细介绍一下这个类。这一节就学会如何创建逆向工程即可。    

Mybatis(七) mybatis的逆向工程的配置详解的更多相关文章

  1. mybatis 代码生成器(IDEA, Maven)及配置详解(部分配置你应该不知道)

    目录 1 创建代码生成器 1.1 创建Maven项目 1.2 配置 generator.xml 1.3 配置 pom.xml 1.4 使用及测试 2 XML 配置详解 2.1 优先 2.2 官网没有的 ...

  2. Mybatis学习(七)————— mybatis的逆向工程的配置详解

    一.什么是逆向工程? 简单点说,就是通过数据库中的单表,自动生成java代码. Mybatis官方提供了逆向工程,可以针对单表自动生成mybatis代码(mapper.java\mapper.xml\ ...

  3. SSH:Hibernate框架(七种关联关系映射及配置详解)

    概念 基本映射是对一个实体进行映射,关联映射就是处理多个实体之间的关系,将关联关系映射到数据库中,所谓的关联关系在对象模型中有一个或多个引用. 分类 关联关系分为上述七种,但是由于相互之间有各种关系, ...

  4. 深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇)

    上篇文章<深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)> 介绍了properties与environments, ...

  5. 转载 Spring、Spring MVC、MyBatis整合文件配置详解

    Spring.Spring MVC.MyBatis整合文件配置详解   使用SSM框架做了几个小项目了,感觉还不错是时候总结一下了.先总结一下SSM整合的文件配置.其实具体的用法最好还是看官方文档. ...

  6. Spring MVC、MyBatis整合文件配置详解

    Spring:http://spring.io/docs MyBatis:http://mybatis.github.io/mybatis-3/ Building a RESTful Web Serv ...

  7. Mybatis中接口和对应的mapper文件位置配置详解

    Mybatis中接口和对应的mapper文件位置配置详解 原链接为:https://blog.csdn.net/fanfanzk1314/article/details/71480954 今天遇到一个 ...

  8. 一、Mybatis配置详解

    Mybatis配置详解 XML配置文件层次结构 下图展示了mybatis-config.xml的全部配置元素 properties元素 properties是一个配置属性的元素,让我们能在配置文件的上 ...

  9. 深入浅出Mybatis系列四-配置详解之typeAliases别名(mybatis源码篇)

    注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇文章<深入浅出Mybatis系列(三)---配置详解之properties ...

随机推荐

  1. let与const详解

    在ES6中,js首次引入了块级作用域的概念,而什么是块级作用域? 众所就知,在js当中存在预解析的概念,就是变量提升.并且只存在全局作用域和私有作用域.在全局定义的变量就是全局变量,而在函数内部定义的 ...

  2. javaWeb学习总结(11)- 监听器(Listener)学习

    一.监听器介绍 1.1.监听器的概念 监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动.监听器其 实就是一个实现特定接口的普 ...

  3. 四、 添加模型Model(ASP.NET MVC5 系列)

    在这一章节中我们将添加一些classes类来管理数据库中的movies.这些classes类就是ASP.NET MVC应用程序中的"model". 我们将用.NET框架中的数据访问 ...

  4. Unix文化--RTFM

    背景 从上个世纪70年代初unix被创建后的不久,它变得越来越流行起来,从最初的贝尔实验室,到后来的许多大学的计算机院系.这意味着越来越多的人需要学习如何使用unix. 可以预期的是,贝尔实验室的人都 ...

  5. Java 8 新特性1-函数式接口

    Java 8 新特性1-函数式接口 (原) Lambda表达式基本结构: (param1,param2,param3) -> {代码块} 例1: package com.demo.jdk8; i ...

  6. nodeJS之路径PATH模块

    前面的话 path模块包含一系列处理和转换文件路径的工具集,通过 require('path') 可用来访问这个模块.本文将详细介绍path模块 路径组成 [path.dirname(p)] 返回路径 ...

  7. 虚拟机安装Android最详细教程

    虚拟机想必大家都听说过,有些同学还用过.虚拟机可以模拟出一个操作系统,基于物理机创建.可以模拟常见的 Windows,ubuntu等等. 在使用虚拟机的过程中,想必大家都遇到过一些棘手的问题,尤其是安 ...

  8. JVM-4.类加载机制

    目录 一.类加载的基础 二.类加载的过程 三.类加载器:分类 四.类加载器:双亲委托模型 五.类加载器:补充 六.初始化时机/主动引用和被动引用[关于实例初始化,参考<Java编程思想05-初始 ...

  9. SQL数据库的多表查询

    多表查询分为 内.外连接 外连接分为左连接(left join 或left outer join).右连接(right join 或者 right outer join).和完整外部连接 (full ...

  10. Mac OS 的命令行 总结

    du 命令 查看目录下所有文件的大小: du -sh * ls 命令 直接显示当前目录下的所有的非隐藏文件: ls // 怎么在文章中显示不出来?? 显示当前目录下的所有的文件(包括隐藏的): ls ...