含有分页的插件html
建立一个简单的maven项目 在src/main/java包下 建立一个mbg.xml文件java
<?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> <!-- 分页插件 --> <plugin type="org.mybatis.generator.plugins.RowBoundsPlugin"></plugin> <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" xml type="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须要的插件mysql
<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>//指定mbg.xml在项目中的路径 </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类型的长度不一样生成不一样的数据类型sql
number长度 | Java类型 |
1~4 | Short |
5~9 | Integer |
10~18 | Long |
18+ | BigDecimal |
这样就写了一个类型转换器,须要继承JavaTypeResolver接口数据库
而后在mybaties配置文件generatorConfig.xml中类型转换配置位置添加上即apache
<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" xml type="XMLMAPPER" --> <javaClientGenerator type="ANNOTATEDMAPPER" targetPackage="cn.et.dao" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- 数据库名 --> <table tableName="food"> </table> </context> </generatorConfiguration>
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" xml type="XMLMAPPER" --> <javaClientGenerator type="ANNOTATEDMAPPER" targetPackage="cn.et.dao" targetProject="src/main/java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator>