步骤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