由于MyBatis属于一种半自动的ORM框架,所以主要的工作将是书写Mapping映射文件,但是由于手写映射文件很容易出错,所以查资料发现有现成的工具可以自动生成底层模型类、Dao接口类甚至Mapping映射文件。
一、建立表结构
CREATE TABLE `user` (
`id` varchar(50) NOT NULL,
`username` varchar(18) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`password` varchar(18) DEFAULT NULL,
`email` varchar(50) DEFAULT NULL,
`name` varchar(18) DEFAULT NULL,
`sex` varchar(2) DEFAULT NULL,
`birthday` varchar(50) DEFAULT NULL,
`address` varchar(500) DEFAULT NULL,
`tel` varchar(18) DEFAULT NULL,
`qq` varchar(18) DEFAULT NULL,
`image` varchar(50) DEFAULT NULL,
`sfjh` varchar(1) DEFAULT NULL,
`sfzx` varchar(1) DEFAULT NULL,
`sfhf` varchar(1) DEFAULT NULL,
`sfpl` varchar(1) DEFAULT NULL,
`sffx` varchar(1) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf-8;
二、下载mybatis-generator-core
进入:http://code.google.com/p/mybatis/
选择Downloads,再选择MyBatis Generator Tool下载即可。
三、生成配置文件
新建一个空的XML配置文件,名称可以随便取,这里以generatorConfig.xml为名。最好将这个文件放在下载后的lib目录中,如图:
其中mysql的驱动可以随便放在非中文路径的地方,这里为了方便就放在lib目录下。
自动生成最重要的就是配置文件的书写,现在就开始介绍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>
- <!-- 数据库驱动-->
- <classPathEntry location="mysql-connector-java-5.0.6-bin.jar"/>
- <context id="DB2Tables" targetRuntime="MyBatis3">
- <commentGenerator>
- <property name="suppressDate" value="true"/>
- <!-- 是否去除自动生成的注释 true:是 : false:否 -->
- <property name="suppressAllComments" value="true"/>
- </commentGenerator>
- <!--数据库链接URL,用户名、密码 -->
- <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost/test" userId="test" password="test">
- </jdbcConnection>
- <javaTypeResolver>
- <property name="forceBigDecimals" value="false"/>
- </javaTypeResolver>
- <!-- 生成模型的包名和位置-->
- <javaModelGenerator targetPackage="test.model" targetProject="src">
- <property name="enableSubPackages" value="true"/>
- <property name="trimStrings" value="true"/>
- </javaModelGenerator>
- <!-- 生成映射文件的包名和位置-->
- <sqlMapGenerator targetPackage="test.mapping" targetProject="src">
- <property name="enableSubPackages" value="true"/>
- </sqlMapGenerator>
- <!-- 生成DAO的包名和位置-->
- <javaClientGenerator type="XMLMAPPER" targetPackage="test.dao" targetProject="src">
- <property name="enableSubPackages" value="true"/>
- </javaClientGenerator>
- <!-- 要生成哪些表-->
- <table tableName="about" domainObjectName="AboutDto" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
- <table tableName="user" domainObjectName="UserDto" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
- <table tableName="syslogs" domainObjectName="SyslogsDto" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
- </context>
- </generatorConfiguration>
1、其中需要注意的有数据库驱动、数据库URL、用户名、密码、生成模型的包名和位置、生成映射文件的包名和位置、生成DAO的包名和位置以及最后需要生成的表名和对应的类名。
四、运行
需要通过CMD命令行方式来运行,首先可以先准备一个运行的脚本,这里使用的脚本是:java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite
需要注意的是:mybatis-generator-core-1.3.2.jar为下载的对应版本的jar,generatorConfig.xml 为配置文件名,如果不为这个可以在这里进行修改。
启动cmd进入到“F:\soft\mybatis-generator-core-1.3.2\lib”这个目录下,如图:
生成成功后进到src目录下,可以看到已经生成了对应的model、dao、mapping,如图:
下面可以看看生成后的UserMapper.xml
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
- <mapper namespace="test.dao.UserDtoMapper" >
- <resultMap id="BaseResultMap" type="test.model.UserDto" >
- <id column="id" property="id" jdbcType="VARCHAR" />
- <result column="username" property="username" jdbcType="VARCHAR" />
- <result column="password" property="password" jdbcType="VARCHAR" />
- <result column="email" property="email" jdbcType="VARCHAR" />
- <result column="name" property="name" jdbcType="VARCHAR" />
- <result column="sex" property="sex" jdbcType="VARCHAR" />
- <result column="birthday" property="birthday" jdbcType="VARCHAR" />
- <result column="address" property="address" jdbcType="VARCHAR" />
- <result column="tel" property="tel" jdbcType="VARCHAR" />
- <result column="qq" property="qq" jdbcType="VARCHAR" />
- <result column="image" property="image" jdbcType="VARCHAR" />
- <result column="sfjh" property="sfjh" jdbcType="VARCHAR" />
- <result column="sfzx" property="sfzx" jdbcType="VARCHAR" />
- <result column="sfhf" property="sfhf" jdbcType="VARCHAR" />
- <result column="sfpl" property="sfpl" jdbcType="VARCHAR" />
- <result column="sffx" property="sffx" jdbcType="VARCHAR" />
- </resultMap>
- <sql id="Base_Column_List" >
- id, username, password, email, name, sex, birthday, address, tel, qq, image, sfjh,
- sfzx, sfhf, sfpl, sffx
- </sql>
- <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
- select
- <include refid="Base_Column_List" />
- from user
- where id = #{id,jdbcType=VARCHAR}
- </select>
- <delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
- delete from user
- where id = #{id,jdbcType=VARCHAR}
- </delete>
- <insert id="insert" parameterType="test.model.UserDto" >
- insert into user (id, username, password,
- email, name, sex, birthday,
- address, tel, qq, image,
- sfjh, sfzx, sfhf, sfpl,
- sffx)
- values (#{id,jdbcType=VARCHAR}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},
- #{email,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{sex,jdbcType=VARCHAR}, #{birthday,jdbcType=VARCHAR},
- #{address,jdbcType=VARCHAR}, #{tel,jdbcType=VARCHAR}, #{qq,jdbcType=VARCHAR}, #{image,jdbcType=VARCHAR},
- #{sfjh,jdbcType=VARCHAR}, #{sfzx,jdbcType=VARCHAR}, #{sfhf,jdbcType=VARCHAR}, #{sfpl,jdbcType=VARCHAR},
- #{sffx,jdbcType=VARCHAR})
- </insert>
- <insert id="insertSelective" parameterType="test.model.UserDto" >
- insert into user
- <trim prefix="(" suffix=")" suffixOverrides="," >
- <if test="id != null" >
- id,
- </if>
- <if test="username != null" >
- username,
- </if>
- <if test="password != null" >
- password,
- </if>
- <if test="email != null" >
- email,
- </if>
- <if test="name != null" >
- name,
- </if>
- <if test="sex != null" >
- sex,
- </if>
- <if test="birthday != null" >
- birthday,
- </if>
- <if test="address != null" >
- address,
- </if>
- <if test="tel != null" >
- tel,
- </if>
- <if test="qq != null" >
- qq,
- </if>
- <if test="image != null" >
- image,
- </if>
- <if test="sfjh != null" >
- sfjh,
- </if>
- <if test="sfzx != null" >
- sfzx,
- </if>
- <if test="sfhf != null" >
- sfhf,
- </if>
- <if test="sfpl != null" >
- sfpl,
- </if>
- <if test="sffx != null" >
- sffx,
- </if>
- </trim>
- <trim prefix="values (" suffix=")" suffixOverrides="," >
- <if test="id != null" >
- #{id,jdbcType=VARCHAR},
- </if>
- <if test="username != null" >
- #{username,jdbcType=VARCHAR},
- </if>
- <if test="password != null" >
- #{password,jdbcType=VARCHAR},
- </if>
- <if test="email != null" >
- #{email,jdbcType=VARCHAR},
- </if>
- <if test="name != null" >
- #{name,jdbcType=VARCHAR},
- </if>
- <if test="sex != null" >
- #{sex,jdbcType=VARCHAR},
- </if>
- <if test="birthday != null" >
- #{birthday,jdbcType=VARCHAR},
- </if>
- <if test="address != null" >
- #{address,jdbcType=VARCHAR},
- </if>
- <if test="tel != null" >
- #{tel,jdbcType=VARCHAR},
- </if>
- <if test="qq != null" >
- #{qq,jdbcType=VARCHAR},
- </if>
- <if test="image != null" >
- #{image,jdbcType=VARCHAR},
- </if>
- <if test="sfjh != null" >
- #{sfjh,jdbcType=VARCHAR},
- </if>
- <if test="sfzx != null" >
- #{sfzx,jdbcType=VARCHAR},
- </if>
- <if test="sfhf != null" >
- #{sfhf,jdbcType=VARCHAR},
- </if>
- <if test="sfpl != null" >
- #{sfpl,jdbcType=VARCHAR},
- </if>
- <if test="sffx != null" >
- #{sffx,jdbcType=VARCHAR},
- </if>
- </trim>
- </insert>
- <update id="updateByPrimaryKeySelective" parameterType="test.model.UserDto" >
- update user
- <set >
- <if test="username != null" >
- username = #{username,jdbcType=VARCHAR},
- </if>
- <if test="password != null" >
- password = #{password,jdbcType=VARCHAR},
- </if>
- <if test="email != null" >
- email = #{email,jdbcType=VARCHAR},
- </if>
- <if test="name != null" >
- name = #{name,jdbcType=VARCHAR},
- </if>
- <if test="sex != null" >
- sex = #{sex,jdbcType=VARCHAR},
- </if>
- <if test="birthday != null" >
- birthday = #{birthday,jdbcType=VARCHAR},
- </if>
- <if test="address != null" >
- address = #{address,jdbcType=VARCHAR},
- </if>
- <if test="tel != null" >
- tel = #{tel,jdbcType=VARCHAR},
- </if>
- <if test="qq != null" >
- qq = #{qq,jdbcType=VARCHAR},
- </if>
- <if test="image != null" >
- image = #{image,jdbcType=VARCHAR},
- </if>
- <if test="sfjh != null" >
- sfjh = #{sfjh,jdbcType=VARCHAR},
- </if>
- <if test="sfzx != null" >
- sfzx = #{sfzx,jdbcType=VARCHAR},
- </if>
- <if test="sfhf != null" >
- sfhf = #{sfhf,jdbcType=VARCHAR},
- </if>
- <if test="sfpl != null" >
- sfpl = #{sfpl,jdbcType=VARCHAR},
- </if>
- <if test="sffx != null" >
- sffx = #{sffx,jdbcType=VARCHAR},
- </if>
- </set>
- where id = #{id,jdbcType=VARCHAR}
- </update>
- <update id="updateByPrimaryKey" parameterType="test.model.UserDto" >
- update user
- set username = #{username,jdbcType=VARCHAR},
- password = #{password,jdbcType=VARCHAR},
- email = #{email,jdbcType=VARCHAR},
- name = #{name,jdbcType=VARCHAR},
- sex = #{sex,jdbcType=VARCHAR},
- birthday = #{birthday,jdbcType=VARCHAR},
- address = #{address,jdbcType=VARCHAR},
- tel = #{tel,jdbcType=VARCHAR},
- qq = #{qq,jdbcType=VARCHAR},
- image = #{image,jdbcType=VARCHAR},
- sfjh = #{sfjh,jdbcType=VARCHAR},
- sfzx = #{sfzx,jdbcType=VARCHAR},
- sfhf = #{sfhf,jdbcType=VARCHAR},
- sfpl = #{sfpl,jdbcType=VARCHAR},
- sffx = #{sffx,jdbcType=VARCHAR}
- where id = #{id,jdbcType=VARCHAR}
- </update>
- </mapper>
接下来就可以将这三个目录拷贝到对应项目的目录中,如果需要新增自己的方法可以修改dao类。
相关推荐
mybatis-generator-config_1_0.dtd文件存在于mybatis-generator-core-1.3.2.jar包中,路径如下org/mybatis/generator/config/xml/mybatis-generator-config_1_0.dtd 可以设置开发工具的dtd配置,配置...
由于MyBatis属于一种半自动的ORM框架,所以主要的工作将是书写Mapping映射文件,但是由于手写映射文件很容易出错,所以查资料发现有现成的工具可以自动生成底层模型类、Dao接口类甚至Mapping映射文件。
mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip ...
赠送jar包:mybatis-generator-core-1.3.7.jar; 赠送原API文档:mybatis-generator-core-1.3.7-javadoc.jar; 赠送源代码:mybatis-generator-core-1.3.7-sources.jar; 赠送Maven依赖信息文件:mybatis-generator-...
貌似http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd已经链接不了,这里提供一个mybatis-generator-config_1_0的dtd文件,替换后就可以使用mybatis自动生成插件了。把网址替换成dtd文件的存放路径就行了,...
总的来说,mybatis-generator-gui是一个便捷的开发工具,通过图形界面简化了MyBatis的Mapper文件生成过程,提高了开发效率,同时提供了数据库类的自动生成功能,使开发者能更专注于业务逻辑的实现。对于使用MyBatis...
mybatis-plus-sample-generator: 代码生成器示例 mybatis-plus-sample-crud: 完整 CRUD 示例 mybatis-plus-sample-wrapper: 条件构造器示例 mybatis-plus-sample-pagination: 分页功能示例 mybatis-plus-sample-...
在这个场景中,“逆向工程mybatis-generator-1.3.2”指的是对MyBatis Generator 1.3.2版本的源代码或执行流程进行逆向分析。MyBatis Generator(MBG)是一个强大的工具,能够自动生成MyBatis接口和映射器XML文件,...
4. **mybatis-generator-core-1.3.2.jar**:MyBatis Generator的主程序,包含代码生成的逻辑和执行引擎。 5. **mybatis-generator-core-1.3.2-sources.jar**:这个文件包含了MyBatis Generator的源代码,对于想要...
赠送jar包:mybatis-plus-boot-starter-3.5.1.jar; 赠送原API文档:mybatis-plus-boot-starter-3.5.1-javadoc.jar; 赠送源代码:mybatis-plus-boot-starter-3.5.1-sources.jar; 赠送Maven依赖信息文件:mybatis-...
在MyBatis中,`mybatis-3-config.dtd` 和 `mybatis-3-mapper.dtd` 是两个至关重要的DTD(Document Type Definition)文件,它们定义了MyBatis配置文件和映射文件的结构和规则。 首先,让我们深入了解一下`mybatis-3...
利用mybatis-generator-core可以自动生成实体类、dao接口和mapping映射文件,里头也提供了使用说明: 1、进入lib文件夹里头。 2、修改generatorConfig.xml配置 主要修改数据库地址,用户名,密码,以及数据库名称,...
为了在项目中快捷方便的代码生成,将mybatis-plus-generator封装为了一个maven的插件`mybatis-plus-generator-maven-plugin。使用文档参考:https://blog.csdn.net/xiweiller/article/details/103072165
`mybatis-generator-1.4.0.rar` 是一个压缩包,包含了MBG的1.4.0版本及其相关的资源,包括可能的使用说明和运行所需的jar包。 **1. MyBatis Generator(MBG)简介** MyBatis Generator是MyBatis框架的一个插件,它...
"mybatis-generator-core-1.3.2" 是 MBG 的一个特定版本,它包含了所有必要的组件来帮助我们自动化 MyBatis 配置和代码生成过程。 MyBatis Generator 使用 XML 配置文件来定义生成规则,包括数据库连接信息、表选择...
博客原文的2个资源文件 博客:https://blog.csdn.net/gt18120588267/article/details/106190484 资源:mybatis-3-mapper.dtd 和 mybatis-generator-config_1_0.dtd
3. 模板配置:`mybatis-generator-gui-plus`提供了丰富的模板选项,允许用户定制生成的代码风格,包括Mapper接口、Mapper XML文件、实体类以及DAO实现类的模板。 4. 生成策略:在生成代码的过程中,用户可以设置...