MBG(Mybatis generator)自动生成sql语句
来源:互联网 发布:nginx 代理iis 编辑:程序博客网 时间:2024/05/16 10:32
学习官网 http://www.mybatis.org/generator/
创建一个简单的maven项目 在src/main/java包下 创建一个mbg.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><!-- 驱动包(数据库的jar包) --> <classPathEntry location="D:\mysql-connector-java-5.1.26-bin.jar" /><!-- targetRuntime开发环境使用的mybatis的版本 --> <context id="DB2Tables" targetRuntime="MyBatis3"> <!-- 连接数据库的四要素 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/test" userId="root" password="123456"> </jdbcConnection> <javaTypeResolver > <property name="forceBigDecimals" value="false" /> </javaTypeResolver><!-- 实体类 bean 带有get和set方法的bean --> <javaModelGenerator targetPackage="cn.et.entity" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator><!-- sql语句相关的xml或者注解的生成包路径 --> <sqlMapGenerator targetPackage="cn.et.resource" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator><!-- 生成的接口所在的位置 注解type="ANNOTATEDMAPPER"xmltype="XMLMAPPER"--> <javaClientGenerator type="ANNOTATEDMAPPER" targetPackage="cn.et.dao" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator><!-- 数据库名 --> <table tableName="food"> </table> </context></generatorConfiguration>
在pom.xml中配置 运行maven需要的插件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>GBM</groupId> <artifactId>GBM</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>GBM</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties><!-- 运行maven需要的插件 --><build><plugins><plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> <configuration> <configurationFile>src/main/java/mbg.xml</configurationFile> </configuration></plugin></plugins></build> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies></project>
Oracle数据库,用mybatis-gen.xml 自动生成Java对象的时候,会根据number类型的长度不同生成不同的数据类型
number长度Java类型1~4Short5~9Integer10~18Long18+BigDecimal
这样就写了一个类型转换器,需要继承JavaTypeResolver接口
然后在mybaties配置文件generatorConfig.xml中类型转换配置位置添加上即
<javaTypeResolver type="com.generator.MyJavaTypeResolver"> <property name="forceBigDecimals" value="false" /> </javaTypeResolver>mbg.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><!-- 驱动包(数据库的jar包) --> <classPathEntry location="D:\mysql-connector-java-5.1.26-bin.jar" /><!-- targetRuntime开发环境使用的mybatis的版本 --> <context id="DB2Tables" targetRuntime="MyBatis3"> <!-- 连接数据库的四要素 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/test" userId="root" password="123456"> </jdbcConnection> <javaTypeResolver type="com.generator.MyJavaTypeResolver"> <property name="forceBigDecimals" value="false" /> </javaTypeResolver><!-- 实体类 bean 带有get和set方法的bean --> <javaModelGenerator targetPackage="cn.et.entity" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator><!-- sql语句相关的xml或者注解的生成包路径 --> <sqlMapGenerator targetPackage="cn.et.resource" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator><!-- 生成的接口所在的位置 注解type="ANNOTATEDMAPPER"xmltype="XMLMAPPER"--> <javaClientGenerator type="ANNOTATEDMAPPER" targetPackage="cn.et.dao" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator><!-- 数据库名 --> <table tableName="food"> </table> </context></generatorConfiguration>
类型转换器MyJavaTypeResolver主要代码
public FullyQualifiedJavaType calculateJavaType( IntrospectedColumn introspectedColumn) { // TODO Auto-generated method stub FullyQualifiedJavaType answer; JdbcTypeInformation jdbcTypeInformation = typeMap .get(introspectedColumn.getJdbcType()); if (jdbcTypeInformation == null) { switch (introspectedColumn.getJdbcType()) { case Types.DECIMAL: case Types.NUMERIC: if(introspectedColumn.getScale() > 0) {//如果包含小数点则转换成float answer = new FullyQualifiedJavaType(Float.class.getName()); }else{ if ( introspectedColumn.getLength() > 18 || forceBigDecimals) { answer = new FullyQualifiedJavaType(BigDecimal.class .getName()); } else if (introspectedColumn.getLength() > 9) { answer = new FullyQualifiedJavaType(Long.class.getName()); } else if (introspectedColumn.getLength() > 4) { answer = new FullyQualifiedJavaType(Integer.class.getName()); } else { answer = new FullyQualifiedJavaType(Short.class.getName()); } } break; default: answer = null; break; } } else { answer = jdbcTypeInformation.getFullyQualifiedJavaType(); } return answer; }以上是生成注解的案例 如要生成xml 上面的mbg.xml有说明 只要改动即可 还要生成一个源文件包 src/main/resources
<!-- 生成的接口所在的位置 注解type="ANNOTATEDMAPPER"xmltype="XMLMAPPER"--> <javaClientGenerator type="ANNOTATEDMAPPER" targetPackage="cn.et.dao" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator>
运行命令 mybatis-generator:generate
阅读全文
0 0
- MBG(Mybatis generator)自动生成sql语句
- MBG(MyBatis Generator):MyBatis自动代码生成;
- mybatis自动生成工具-MBG
- mybatis generator(MBG)
- MyBatis Generator (MBG) 生成类增加OR条件
- Mybatis自动生成sql语句
- MBG自动代码生成
- MyBatis Generator(MBG)扩展MyBatis生成器
- MyBatis框架核心之(十)Mybatis generator(MBG)代码生成工具
- Mybatis generator 自动生成配置文件
- Generator-Mybatis自动生成代码
- MyBatis Generator自动生成代码
- mybatis-generator自动生成代码
- mybatis自动生成代码generator
- MyBatis Generator 自动生成代码
- Mybatis-Generator自动生成代码
- MyBatis-generator 自动生成代码
- mybatis-generator自动生成代码
- IDEA搭建Springboot
- 用canvas实现鼠标拖动绘制矩形框
- 数据缺失的中文字符串
- 【数据平台】pandas按条件去重
- 通过先序和中序数组生成后序数组
- MBG(Mybatis generator)自动生成sql语句
- spring通过注解配置Bean
- 41. First Missing Positive
- java单例模式
- POCO线程池分析
- 未来保险MediShares你能想象到的场景都能为你实现
- Git常用命令
- spring boot 1.5.4 集成shiro+cas,实现单点登录和权限控制
- vs工程项目修改继承的值