使用MyBatis Generator自动生成持久层CRUD代码的两种方法
最近在使用MyBatis,得知可以利用MyBatis Generator自动生成实体类、DAO接口和Mapping映射文件。当数据库中的表多的时候,让你不用再手写Mapping映射文件,和实体类,就可以避免出错和节省开发时间了。
第一种方法是使用命令行方式编译生成
1、首先下载需要的包,都可以在http://mvnrepository.com/这里下载到。
2、把下载好的包放到项目的文件夹中。
3、再新建一个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.1.39.jar"/> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressDate" value="true"/> <!-- 是否去除自动生成的注释--> <property name="suppressAllComments" value="true"/> </commentGenerator> <!--设置数据库链接的驱动,URL,用户名和密码 需要根据自己的情况填写--> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.0.88:3306/test" userId="abcd" password="111111"> </jdbcConnection><!--当字段类型是 DECIMAL或者 NUMERIC时,是否强制转换为BigDecimal,否的话会自动根据规模的大小选择合适的类型 --> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- 生成模型的包名和位置--> <javaModelGenerator targetPackage="main.java.com.cn.uuu.model" targetProject="src"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 生成映射文件的包名和位置--> <sqlMapGenerator targetPackage="main.java.com.cn.uuu.mapping" targetProject="src"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- 生成DAO的包名和位置--> <javaClientGenerator type="XMLMAPPER" targetPackage="main.java.com.cn.uuu.IDao" targetProject="src"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名,需要根据自己的需求修改--> <table tableName="tb_test" domainObjectName="Test" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table></context>
</generatorConfiguration> <!-- java -jar mybatis-generator-core-1.3.4.jar -configfile generatorConfig.xml -overwrite -->
4、接着运行命令行,进入到目标文件夹,输入命令
java -jar mybatis-generator-core-1.3.4.jar -configfile generatorConfig.xml -overwrite 运行
5、然后就生成了对应的文件和文件夹了。(这里我把IDao的文件更名为IDao风格的命名,原本的文件名是TestMapper,根据自己习惯吧)
第二种方法就是在Eclipse安装一个Mybatis Generator 的插件,然后编写配置文件生成
1、打开Eclipse,选择Help->Eclipse Marketplace 搜索MyBatis Generator ,选择Mybatis Generator安装。
2、安装后新建一个Web工程,右键工程新建一个MyBatis Generator Configuration File(其实就是第一种方法的XML配置文件)
3、填写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="G://mysql-connector-java-5.1.39.jar"/> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressDate" value="true"/> <!-- 是否去除自动生成的注释 --> <property name="suppressAllComments" value="true"/> </commentGenerator> <!--数据库链接URL,用户名、密码 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.0.111:3306/test" userId="abcd" password="111111" /> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- 生成模型的包名和位置--> <javaModelGenerator targetPackage="com.cn.uuu.model" targetProject="TestMG/src/main/java"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 生成映射文件的包名和位置--> <sqlMapGenerator targetPackage="com.cn.uuu.mapping" targetProject="TestMG/src/main/java"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- 生成DAO的包名和位置--> <javaClientGenerator type="XMLMAPPER" targetPackage="com.cn.uuu.IDao" targetProject="TestMG/src/main/java"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名--> <table tableName="tb_test" domainObjectName="Test" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/></context>
</generatorConfiguration>
4、右键配置文件文件,点击Generate MyBatis/iBATIS Artifacts,就会生成相应的文件和文件夹了。
5、到此,如果你配置好MyBatis并导入了需要的包,应该就能正常调用了。
总结:
这两种方法各有所好,各位可以根据自己的需求选择,配置文件里面的属性都基本能在官网上找到解释,后来还发现了有一个网友翻译为中文的网站,相见恨晚啊!(英语好的请忽略)
官网:http://www.mybatis.org/generator/index.html
中文译网:http://mbg.cndocs.tk/configreference/xmlconfig.html
使用MyBatis Generator自动生成持久层CRUD代码的两种方法相关推荐
- dao generator for php and mysql_mybatis generator 自动生成dao层映射代码
资源: doc url :http://www.mybatis.org/generator/ download:https://github.com/mybatis/generator/release ...
- SpringBoot如何自动生成实体类和Dao层以及映射文件(mybatis generator 自动生成代码)
一.首先添加自动生成代码插件 <!-- mybatis generator 自动生成代码插件 生成时解除注释 --><plugin><groupId>org.myb ...
- mybatis generator 自动生成代码(带注释的实体类)
使用前提: 当你开发的java 项目或新模块的数据库有N张表操作时,这时要自己写实体类.dao.SqlMapper.xml等文件,如果有多个表,就是造成时间浪费降低开发效率,所以建议使用mybatis ...
- SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件
我们这一一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件.然后再使用阿里巴巴提供的开源连接池druid,这个连接池的好处我 ...
- mybatis generator自动生成sqlmap代码的不完善之处以及解决方法
mybatis generator自动生成sqlmap代码的不完善之处以及解决方法 参考文章: (1)mybatis generator自动生成sqlmap代码的不完善之处以及解决方法 (2)http ...
- IDEA使用Mybatis Generator自动生成部分代码
IDEA使用Mybatis Generator自动生成部分代码 说明:使用Mybatis Generator代码生成配置,简单生成部分后端代码,包括(实体类,Mapper.Mapper.xml文件) ...
- 一.关于实现浏览器弹窗提示内容几秒后自动消失重定向执行其他函数的两种方法
一.关于实现浏览器弹窗提示内容几秒后自动消失重定向执行其他函数的两种方法 第一种方法–向body动态写入div标签调用css效果显示: (新建***.jsp放在WebContent根目录下直接访问ip ...
- Mybatis(1)——Mybatis Generator自动生成代码
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML ...
- Mybatis Generator 自动生成数据库XML(Mybatis Generator 逆向工程)
Mybatis Generator 逆向工程自动生成XML 1.MyBatis Generator简单介绍: (1)MyBatis Generator 会生成: Dao,Model,Mapping基础 ...
最新文章
- 【Matlab数据的可视化】自适应绘图函数fplot
- Android 自定义对话框
- 【做题记录】统计区间(哈希/扫描线)
- github gis 路径规划_Apollo问答丨车辆定位和轨迹规划用的是语义,还是3D Position?...
- datagridview 绑定list 不能刷新界面_人人都可写代码-H5零基础编程-首页界面实操06...
- 安徽医科大学计算机考研,这所985院校将现场面试!安徽医科大学缺额超800人!调剂信息更新...
- pythongoogle.probuf.timestamp_gRPC快速入门(一)——Protobuf简介
- Python笔记之读取yaml文件
- 软件项目可持续性运作地思考
- Centos7.2下安装redis通用键值命令
- [音乐天堂]爱尔兰的小童星Declan
- 从网络启动恢复RG750Gr3
- OneNote for win10 无法加载笔记本
- 码链的重大突破,提升国产二维码技术话语权
- Webm如何转换mp4? 傻瓜式的操作方法来了
- 华硕服务器 u盘安装系统,怎样用U盘给华硕电脑装系统3种教程
- 全栈设计师必须拥有的Mac软件推荐
- final review 报告
- 计算机游戏本和商务本的区别,游戏本和商务本的区别有哪些
- 什么是长尾词?怎么查找合适的长尾词?
热门文章
- 服务器配置文件登录脚本,部署自定义配置文件 (Sun Java System Delegated Administrator 6.4 管理指南)...
- C语言与Windows API编程!有无同路人?
- android studio cradle 本地配置
- 解决 ubuntu 下 smplayer 透明
- java关键字continue_什么是“continue”关键字以及它如何在Java中运行?
- ColorMatrixColorFilter 的用法 和灰色头像处理
- gitlab 忘记用户名密码
- 基金被套高位,可以通过做T降低持仓成本并盈利吗?
- 玛瑙象棋有什么好处_清理your玛瑙
- CSS入门篇(第四篇,背景与列表)