步骤1:简介
步骤2:先运行,看到成果,再学习
步骤3:模拟和排错
步骤4:基于后面的知识点
步骤5:jar
步骤6:配置文件
步骤7:TestMybatisGenerator
步骤8:TestMybatis
步骤9:局限性

步骤 1 : 简介

Mybatis Generator是一个用于Mybatis逆向工程的工具。
后面学习的形式都是先有pojo, mapper, xml, 而后再创立表。

用逆向工程的形式,首先保障数据库里有表,而后通过Mybatis Generator生成pojo, mapper和xml。

能够节约大家的工夫,进步开发效率,升高出错几率

步骤 2 : 先运行,看到成果,再学习

老规矩,先下载下载区(点击进入)的可运行我的项目,配置运行起来,确认可用之后,再学习做了哪些步骤以达到这样的成果。

运行 TestMybatisGenerator类,就能够察看到pojo,mapper和xml都生成了,而后再运行 TestMybatis 进行查问测试。

如图所示,运行TestMybatisGenerator之后,刷新我的项目能够看到主动生成的相干文件

注: CategoryExample 这个是用于多条件查问的,在TestMybatis中有演示

步骤 3 : 模拟和排错

在确保可运行我的项目可能正确无误地运行之后,再严格照着教程的步骤,对代码模拟一遍。
模拟过程不免代码有出入,导致无奈失去冀望的运行后果,此时此刻通过比拟正确答案 ( 可运行我的项目 ) 和本人的代码,来定位问题所在。
采纳这种形式,学习有成果,排错有效率,能够较为显著地晋升学习速度,跨过学习路上的各个槛。

举荐应用diffmerge软件,进行文件夹比拟。把你本人做的我的项目文件夹,和我的可运行我的项目文件夹进行比拟。
这个软件很牛逼的,能够晓得文件夹里哪两个文件不对,并且很显著地标记进去
这里提供了绿色装置和应用教程:diffmerge 下载和应用教程

步骤 4 : 基于后面的知识点

基于Mybatis 入门 这个知识点进行

步骤 5 : jar

须要额定的Mybatis Generator jar包(mybatis-generator-core-1.3.5.jar),在下载区(点击进入)下载,下载后放在lib目录下,并导入我的项目

导包方法:右键 project->properties->java build path->libaries->add external jars

步骤 6 : 配置文件

在src目录下创立generatorConfig.xml

这个配置文件有如下作用
1. 指定 mysql jdbcjar 包的地位,这里用的地位是 e:/project/mybatis/lib/mysql-connector-java-5.0.8-bin.jar
2. 设置数据库链接账号密码
3. 指定pojo,mapper,xml别离生成的包名
4. 指定表名以及表名对应的类名
4.1 应用自增长键:

<property name="my.isgen.usekeys" value="true"/><generatedKey column="id" sqlStatement="JDBC"/>

注1:如果IDE(eclipse或者idea) 我的项目里导入了jar包,那就不须要么第一步那样配置jar包的绝对路径了

<?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>    <!--数据库驱动-->    <!--        如果IDE(eclipse或者idea) 我的项目里导入了jar包,那么就不须要配置了jar包的绝对路径了         <classPathEntry    location="e:/project/mybatis/lib/mysql-connector-java-5.0.8-bin.jar"/>    -->    <context id="DB2Tables"    targetRuntime="MyBatis3">        <commentGenerator>            <property name="suppressDate" value="true"/>            <property name="suppressAllComments" value="false"/>        </commentGenerator>        <!--数据库链接地址账号密码-->        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost/how2java" userId="root" password="admin">        </jdbcConnection>        <javaTypeResolver>            <property name="forceBigDecimals" value="false"/>        </javaTypeResolver>        <!--生成Model类寄存地位-->        <javaModelGenerator targetPackage="com.how2java.pojo" targetProject="src">            <property name="enableSubPackages" value="true"/>            <property name="trimStrings" value="true"/>        </javaModelGenerator>        <!--生成映射文件寄存地位-->        <sqlMapGenerator targetPackage="com.how2java.pojo" targetProject="src">            <property name="enableSubPackages" value="true"/>        </sqlMapGenerator>        <!--生成Dao类寄存地位-->        <javaClientGenerator type="XMLMAPPER" targetPackage="com.how2java.mapper" targetProject="src">            <property name="enableSubPackages" value="true"/>        </javaClientGenerator>        <!--生成对应表及类名-->        <table tableName="category_" domainObjectName="Category" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="true" selectByExampleQueryId="false">            <property name="my.isgen.usekeys" value="true"/>            <generatedKey column="id" sqlStatement="JDBC"/>        </table>        <!--         <table tableName="product_" domainObjectName="Product" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> -->    </context></generatorConfiguration>

步骤 7 : TestMybatisGenerator

运行胜利之后,就会在对应地位生成pojo,xml,和mapper

package com.how2java;import java.io.File;import java.io.InputStream;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 TestMybatisGenerator {    public static void main(String[] args) throws Exception {        List<String> warnings = new ArrayList<String>();        boolean overwrite = true;        InputStream is= TestMybatisGenerator.class.getClassLoader().getResource("generatorConfig.xml").openStream();        ConfigurationParser cp = new ConfigurationParser(warnings);        Configuration config = cp.parseConfiguration(is);        is.close();        DefaultShellCallback callback = new DefaultShellCallback(overwrite);        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);        myBatisGenerator.generate(null);        System.out.println("生成代码胜利,刷新我的项目,查看文件,而后执行TestMybatis.java");    }}

步骤 8 : TestMybatis

运行TestMybatis,执行主动生成的mapper,借助CategoryExample 进行含糊查问名称里呈现了9的分类

package com.how2java;import java.io.InputStream;import java.util.List;//import com.how2java.mapper.CategoryMapper;//import com.how2java.pojo.Category;//import com.how2java.pojo.CategoryExample;//import com.how2java.mapper.CategoryMapper;//import com.how2java.pojo.CategoryExample;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import com.how2java.mapper.CategoryMapper;import com.how2java.pojo.Category;import com.how2java.pojo.CategoryExample;public class TestMybatis {    public static void main(String args[]) throws Exception {        System.out.println("先运行TestMybatisGenerator创立mapper,pojo,xml 等文件,而后勾销import里被正文的,以及接下来的正文,并执行代码");        String resource = "mybatis-config.xml";        InputStream inputStream = Resources.getResourceAsStream(resource);        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);        SqlSession session=sqlSessionFactory.openSession();        CategoryExample example = new CategoryExample();        example.createCriteria().andNameLike("%9%");        CategoryMapper mapper = session.getMapper(CategoryMapper.class);        List<Category> cs= mapper.selectByExample(example);        for (Category c : cs) {            System.out.println(c.getName());        }    }}

步骤 9 : 局限性

多对一,一对多须要本人手写,这个工具目前(20170828版本1.3.5)不提供

更多内容,点击理解: https://how2j.cn/k/mybatis/mybatis-generator/1376.html