【Mybatis进阶】--generator自动生成代码

来源:互联网 发布:linux php5.6安装教程 编辑:程序博客网 时间:2024/06/05 02:33

   MyBatis属于一种半自动的ORM框架,需要程序员自己编写sql语句。但是由于手写映射文件很容易错,mybatis官方提供逆向工程可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml、po..)

 

首先,创建数据库表basictype

CREATE TABLE `basictype` (  `id` varchar(32) NOT NULL COMMENT '主键',  `name` varchar(50) DEFAULT NULL COMMENT '名称',  `created_date` datetime DEFAULT NULL COMMENT '创建时间',  `modified_date` datetime DEFAULT NULL COMMENT '修改时间',  `remark` varchar(255) DEFAULT NULL COMMENT '备注',  `isDelete` int(2) DEFAULT NULL COMMENT '是否可用(0:可用;1:不可用)',  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='家具大类(物料大类:电器、厨具、床具)';

下载mybatis-generator-core,配置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 ><!--数据库的jdbc驱动的jar包地址--><classPathEntry location="E:/mysql-connector-java-5.1.7.jar" /> <context id="MySqlTables" targetRuntime="MyBatis3">        <commentGenerator><!--是否去除自动生成的注释 true:是; false:否--><property name="suppressAllComments" value="false" /></commentGenerator><!--数据库连接信息:驱动类、链接地址、用户名、密码 --><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/mobile?characterEncoding=utf-8"userId="root" password="password"></jdbcConnection><javaTypeResolver>                 <!--类型解析器-->                 <!-- 默认false,把jdbc decimal 和 numeric 类型解析为integer -->         <!-- true,把jdbc decimal 和 numeric 类型解析为java.math.bigdecimal--><property name="forceBigDecimals" value="false" /> </javaTypeResolver><!-- 生成模型的包名和位置--><javaModelGenerator targetPackage="com.entity"targetProject="src"><!-- 是否让schema作为包后缀--><property name="enableSubPackages" value="true" /><!-- 从数据库返回的值被清理前后的空格--><property name="trimStrings" value="true" /></javaModelGenerator><!-- 生成Dao接口的包名和位置-->    <javaClientGenerator type="XMLMAPPER"targetPackage="com.mapper" targetProject="src"><property name="enableSubPackages" value="true"/></javaClientGenerator><!-- 生成映射文件xml的包名和位置-->    <sqlMapGenerator targetPackage="com.mapperxml"targetProject="src"><!-- 是否让schema作为包后缀--><property name="enableSubPackages" value="true" /></sqlMapGenerator> <!-- 用于自动生成代码的数据库表;生成哪些表--> <table tableName="basictype">    <generatedKey column="id" sqlStatement="MySql" identity="true"/></table></context></generatorConfiguration>


需要注意的地方
1)必须按照它给定的顺序配置,否则会报以下错误:
The content of element type "context" must match
"(property*,plugin*,commentGenerator?,jdbcConnection,javaTypeResolver?,javaModelGenerator,

sqlMapGenerator?,javaClientGenerator?,table+)".


2)targetPackage和targetProject。这里的包名和你的程序是一一对应的,项目名应该是“你的项目名\src”或者“.\src”。如果直接写“src",会抛出异常:
the project src is not exist

配置好xml文件后,开始创建java项目,引用连接数据库mysql需要的jar包并把配置好的xml文件复制到src文件夹下,在xml文件上右击执行Generate MyBatis/iBATIS Artifacts命令


执行生成 生成的entity、mapper(dao)和对应的xml文件分别如下图所示


xml文件配置的自动生成的注释。


这里的mapper即我们所熟悉的IDAO,每一个mapper都有一个xml映射与其一一对应。


自动化生成的xml文件,大大减少了工作量。



使用生成的代码,只需将其拷贝到自己的工程中即可。

关于mapper和xml文件之间的关联关系会在下篇博客中详细介绍。





1 0
原创粉丝点击