相信熟悉Hibernate和Mybatis的都知道,Hibernate是一种全自动的ORM数据持久框架,而Mybatis是一种半自动化的ORM数据持久框架。即使用Mybatis时,我们需要自己进行编写对应的SQL语句,<select id="selectAllById" parameterType="int" resultType=""> select * fron这点就很麻烦。 所以Mybatis官方就为我们提供了逆向工程,针对数据库表来生成对应的代码,Mapper.java,Mapper.xml和pojo实体类,于是就变得非常方便了,所以接下来我们就来看看如何通过逆向工程来生成这些类吧! 一,指定对应文件的生成地址: 1将pojo实体类放置在我们对应的实体类工程中manager-pojo,为了方便起见我们通常先将该类生成在src目录下,后期将其复制过去即可。 2将Mapper.java和Mapper.xml放到manager-dao中去,同样,为了方便起见我们通常先将该类生成在src目录下,后期将其复制过去即可。 (涉及的包主要有mybatis-3.2.3.jar , mybatis-generator-core-1.3.2.jar , mysql-connector-java-5.1.28-bin) 二,配置对应的配置文件:
<?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" tagetRuntime="MyBatis3"> <commentGenrator> <!--是否去除自动生成的注释,true是,false否--> <property name="suppressAllComments" value="true"/> </commentGenrator> <!--数据库连接的信息,主要有对应数据库的驱动类,连接地址,用户名和密码--> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://clmall" userId="root" password="123456"> </jdbcConnection> <!--设置数据类型,将JDBC DECIMAL和NUMERIC类型解析为Integer,为true时将JDBC DECIMAL和NUMBERIC类型解析为java.math.BigDecimal--> <javaTypeResolver> <property name="forceBigDecimals" value="fasle"/> </javaTypeResolver> <!--配置生成pojo实体类的包名,targetProject:目标类的地址--> <javaModelGenerator targetPackage="cn.chen.pojo" targetProject="./src"> <!--是否让schema作为包的后缀--> <property name="enableSubPackages" value="false"/> <!--从数据库返回的值且清理前后的空格--> <property name="trimStrings" value="true"/> </javaModelGenerator> <!--接着来生成对应的mapper映射文件Mapper.xml--> <sqlMapGenerator targetPackage="cn.chen.mapper" targetProject="./src"> <!--是否让schema作为包的后缀--> <property name="enableSubPackages" value="false"/> </sqlMapGenerator> <!--配置与客户端的接口文件Mapper.java--> <javaClientGenerator type="XMLMAPPER" targetPackage="cn.chen.mapper" targetProject="./src"> <!--是否让schema作为包的后缀--> <property name="enableSubPackages" value="false"/> </javaClientGenerator> <!--接着最后一步就是指定对应的数据库表了--> <!--通过<table表标签来实现,其中schema指定当前表所在的数据库,tableName:很明显就是对应的数据表了--> <table schema="clmall" tableName="tb_content"></table> <table schema="clmall" tableName="tb_item></table> </context> <generationConfiguration>以上就是该逆向工程的配置文件了,其中重点其实就是以下几点
通过jdbcConnection来与对应的数据库进行连接 驱动类driverClass 连接地址:connectionURL 用户名:userId 密码:password逆向工程根据数据库表生成的文件
实体类pojo文件 javaModelGenerator 生成的映射文件 sqlMapGenerator 生成的接口文件 javaClientGenerator 对应的数据库中的表 schema 指定对应表所在的数据库 tableName表名接着来看看其生成程序:
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(); } }执行以上程序之后,就可以发现在src目录下会生成对应的包了

