正向:数据库——》javaBean实体类、mapper接口、xml文件
逆向:根据数据库的表mybatis可以逆向分析出这张表,然后根据这张表创建出对应的JavaBean实体类、对应的增删改查接口、mapper文件(代码生成器)
Mybatis Generator
一个专门为mybatis框架使用者定制的代码生成器,可以快速的根据表生成对应的映射文件,接口,以及bean类。支持基本的增删改查,以及QBC风格的条件查询。但是表连接、存储过程等复杂的sql操作需要我们手动编写。
配置依赖:
<dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version> </dependency>
新建generator.xml文件——生成器核心
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mapper.org//DTD Mybatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- context:指定一个mybatis代码生成器的运行环境 targetRuntime="Mybatis3Simple":生成一个简单的CURD操作 --> <context id="DB2Tables" targetRuntime="Mybatis3Simple"> <!--jdbcConnection:指定如何连接到目标数据库--> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mybatis" userId="root" password="123456"> </jdbcConnection> <!--javaTypeResolver:类型解析器--> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- javaModelGenerator:指定JavaBean的生成策略 targetPackage="bean":目标包名 targetProject=".srcjava":目标工程 --> <javaModelGenerator targetPackage="bean" targetProject=".java"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!--sqlMapGenerator:sql映射生成策略--> <sqlMapGenerator targetPackage="mapper" targetProject=". esources"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!--javaClientGenerator:相当于指定mapper接口所在位置--> <javaClientGenerator type="XMLMAPPER" targetPackage="dao" targetProject=".java"> <property name="javaClientGenerator" value="true"/> </javaClientGenerator> <!-- 指定要逆向分析哪些表:根据表要创建JavaBean对象 domainObjectName:需要生成的实体类的名字 --> <table tableName="t_employee" domainObjectName="Employee"></table> <table tableName="t_department" domainObjectName="Department"></table> </context> </generatorConfiguration>
通过测试文件的方式生成代码:
List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File(".src/main/resources/generator.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);
1、找不到配置文件
List<String> warnings = new ArrayList<String>(); boolean overwrite = true; //指定 逆向工程配置文件 File configFile = new File("E:/Code/Mybatis/Mybatis05_generator/src/main/resources/generator.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);
将相对路径改为绝对路径
2、运行时并没有生成对应的文件
相应的目标工程路径有问题
我的目录结构: