MyBatis的逆向工程能自动帮开发者生成数据库表对应的 pojo实体文件,自动生成映射文件
自定生成表的各种(CRUD)的sql语句, 但是只能做单表操作,联合查询还得开发者自己动

使用逆向工程得先在Eclipse安装逆向工程的插件

第一步:eclipse安装mybatis逆向工程插件

在线安装

java 逆向工程接入 eclipse逆向工程_逆向工程

–搜索mybatis

java 逆向工程接入 eclipse逆向工程_xml_02

–然后一直安装。然后判断是否安装成功。有以下文件表示成功。没有则是失败。

java 逆向工程接入 eclipse逆向工程_逆向工程_03

离线安装

--下载插件包 下载地址:https://github.com/mybatis/generator/releases

java 逆向工程接入 eclipse逆向工程_java_04

–选择离线安装

java 逆向工程接入 eclipse逆向工程_java_05

–导入离线包

java 逆向工程接入 eclipse逆向工程_java 逆向工程接入_06

–选项

java 逆向工程接入 eclipse逆向工程_java_07

–然后就next,直到finish

第二步:新建一个普通java项目,导入mybatis.jar包和数据库驱动包

java 逆向工程接入 eclipse逆向工程_xml_08

第三步:生成配置文件

java 逆向工程接入 eclipse逆向工程_java_09

–配置生成文件

<?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="context1">
   <!-- 注释构建 -->
    <commentGenerator>
       <!-- 去掉所有的注释 -->
    	<property name="suppressAllComments" value="true"/>
    	<property name="suppressDate" value="true"/>
    </commentGenerator>
    
    <!-- 数据库四要素 -->
    <jdbcConnection connectionURL="jdbc:mysql://localhost:3306/gj1" 
    driverClass="com.mysql.jdbc.Driver" 
    password="123456" 
    userId="root" />
    <!-- 实体类 : pojo
    	targetPackage : 实体类生成后存放的包
    	targetProject : 存放的目录一般都放在 src下面
      -->
    <javaModelGenerator targetPackage="com.mybatis.pojo" targetProject="mybatis-generator/src" />
    <!-- 映射文件 -->
    <sqlMapGenerator targetPackage="com.mybatis.mapper" targetProject="mybatis-generator/src" />
    <!-- 操作接口 
    	type 生成映射的形式
    		ANNOTATEDMAPPER : 纯注解的,没有xml映射
    		XMLMAPPER : 生成的有xml映射文件
    -->
    <javaClientGenerator  targetPackage="com.mybatis.mapper" targetProject="mybatis-generator/src" type="ANNOTATEDMAPPER" />
    
    <!-- 要生成对应表的配置
    	tableName : 数据库表名
    	domainObjectName:生成的pojo类名
    	//如果下面全部是true,mybatis直接可以使用纯面向对象开发
    	enableCountByExample : 是否生成查询总数的 Example 
    	enableDeleteByExample : 是否生成删除的 Example 
    	enableSelectByExample : 是否生成查询集合的 Example 
    	enableUpdateByExample : 是否生成修改的 Example 
     -->
    <table  tableName="user" domainObjectName="User"  enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="true" enableUpdateByExample="false"></table>
    <table  tableName="employee" enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="true" enableUpdateByExample="false"></table>
    <table  tableName="department" enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="true" enableUpdateByExample="false"></table>
  </context>
</generatorConfiguration>

第三步:开始逆向工程

选中 generatorConfig.xml 逆向工程配置文件,点击鼠标右键

java 逆向工程接入 eclipse逆向工程_xml_10

使用mybatis逆向工程的条件查询

@Test
	public void testSelectAll() {
		// 1.创建SqlSession操作对象
		SqlSession session = MyBatisUtil.openSession();

		// 2.创建UserMapper接口的代理对象
		UserMapper userMapper = session.getMapper(UserMapper.class);

		//多行查询的条件对象,默认查询出所有对象
		UserExample example=new UserExample();
		/*
		 * criteria限制条件对象。默认可以拼接多个条件,但是多个条件之间默认都是AND
		 * 	如果想要多个条件之间为or。则需要两个条件的criteria对象不是同一个对象
		 */
		Criteria criteria = example.createCriteria();
		criteria.andUsernameLike("%女%");
		Criteria createCriteria = example.createCriteria();
		createCriteria.andAgeLessThan(100);
		example.or(createCriteria);
		List<User> list = userMapper.selectByExample(example);
		System.out.println(list);

		// 4.关闭session
		session.close();
	}

逆向功能的缺点