MyBatis的逆向工程的使用的学习笔记
来源:互联网 发布:前端如何优化代码 编辑:程序博客网 时间:2024/06/07 16:02
MyBatis的逆向工程
一:知人论世--使用背景简单介绍
正是Hibernate 全自动的不友好,不够灵活,所以有了 MyBatis这个半自动的ORM框架的问世,但是根据MyBatis的特点来 说工程比较大了,功能比较多了,就会有许多的SQL文件的
那么就要写对应的POJO和Mapper了,这个过程是非常漫长的,而且还容易出错的,都是一些重复的工作的。那么就要解决这个问题,帮助使用MyBatsi框架 的程序员从重复繁重的工作中解放出来,提高工作效率.
mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml、po..).
方向是从数据库到Java代码.
二:开门见山--如何使用MyBatis的逆向工程以及使用逆向工程的步骤.
使用方式:
1:使用Eclipse的插件来使用逆向工程,缺点是不够灵活的,直接就可Eclipse捆绑了,依赖开发工具.
2:使用Java代码来实现逆向工程(推荐使用这个)
使用步骤:
来看GeneratorConfig.xml中的配置文件:
<?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/campusshopping" userId="root"
password=""><!--这里填你数据库的密码 -->
</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.ldh.pojo"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="com.ldh.mapper"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.ldh.mapper"
targetProject=".\src">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->
<table schema="" tableName="ldh_content"></table>
<table schema="" tableName="ldh_content_category"></table>
<table schema="" tableName="ldh_item"></table>
<table schema="" tableName="ldh_item_cat"></table>
<table schema="" tableName="ldh_item_desc"></table>
<table schema="" tableName="ldh_item_param"></table>
<table schema="" tableName="ldh_item_param_item"></table>
<table schema="" tableName="ldh_order"></table>
<table schema="" tableName="ldh_order_item"></table>
<table schema="" tableName="ldh_order_shipping"></table>
<table schema="" tableName="ldh_user"></table>
</context>
</generatorConfiguration>
那个SQL问文件截图:
下面这个是官方提供的逆向工程运行类
直接运行下面这个类就会生成了。
import java.io.File;
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 GeneratorSqlmap {
public void generator() throws Exception{
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);
}
public static void main(String[] args) throws Exception {
try {
GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
generatorSqlmap.generator();
} catch (Exception e) {
e.printStackTrace();
}
}
}
来看Eclipse中的Java代码这里是生成的工程目录:
- MyBatis的逆向工程的使用的学习笔记
- mybatis逆向工程的使用
- MyBatis逆向工程的使用
- MyBatis逆向工程的使用
- Mybatis逆向工程的使用
- 【mybatis】mybatis的逆向工程使用步骤
- mybatis 的逆向工程
- mybatis的逆向工程
- mybatis的逆向工程
- mybatis的逆向工程
- Mybatis的逆向工程
- MyBatis 的逆向工程
- mybatis的逆向工程
- mybatis的逆向工程
- mybatis的逆向工程
- mybatis 的逆向工程
- mybatis的逆向工程
- mybatis的逆向工程
- 可视化——环形图(展示一天各时间段人在房间活动情况)
- Git2--创建版本库,版本回退
- 百练_2972确定数制进制转换
- 中缀表达式转换后缀表达式并求值(java实现)
- 机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)
- MyBatis的逆向工程的使用的学习笔记
- 2016 ACM/ICPC Asia Regional Qingdao Online -Cure
- Yaf学习笔记之多模块
- flask笔记:13:将Flask应用程序部署在nginx,tornado的简单方法
- jquery操作select
- vs2013配置opencv2.0
- 网站架构核心要素
- LeetCode: Move Zeroes
- HBase安装