mybatis 应用程序,需要大量的配置文件,对于一个成百上千的数据库表来说,完全手工配置,这是一个很恐怖的工作量. 所以mybatis 官方也推出了一个mybatis代码生成工具的jar包. 今天花了一点时间,按照 mybatis generator 的doc 文档参考,初步配置出了一个可以使用的版本,我把源代码也提供下载,mybatis 代码生成工具,主要有一下功能:
1.生成pojo 与 数据库结构对应
2.如果有主键,能匹配主键
3.如果没有主键,可以用其他字段去匹配
4.动态select,update,delete 方法
5.自动生成接口(也就是以前的dao层)
6.自动生成sql mapper,增删改查各种语句配置,包括动态where语句配置
7.生成Example 例子供参考
下面介绍下详细过程
1. 创建测试工程,并配置mybatis代码生成jar包
这 里我们需要 mybatis-generator-core-1.3.2.jar,这个 jar 包. 将它拷贝到我们刚刚创建的 web工程的 WebContent/WEB-INF/lib 目录下.在这个目录下也放入 mysql 驱动jar包.因为用 mysql 做测试的
jar包见附件
2.在数据库中创建测试表
在mybatis数据库中创建 用来测试的cats表(如果没有mybatis这个数据库,要创建,这是基于前面这个系列文章而写的,已经有了mybatis 这个数据库)
CREATE TABLE `cats` ( `id` int(11) NOT NULL AUTO_INCREMENT, `pid` int(11) NOT NULL DEFAULT '0', `name` varchar(60) NOT NULL DEFAULT '', `desn` text NOT NULL, PRIMARY KEY (`id`), KEY `name` (`name`,`pid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8
3. 配置mybatis 代码生成工具的配置文件
在创建的web工程中,创建相应的package 比如 :
com.handly.mybatis.dao 用来存放mybatis 接口对象.
com.handly.mybatis.mapper用来存放sql mapper对应的映射,sql语句等.
com.handly.mybatis.model 用来存放与数据库对应的model 。
在用mybatis 代码生成工具之前,这些目录必须先创建好,作为一个好的应用程序,这些目录的创建也是有规律的。
根据mybatis代码生成工具文档,需要一个配置文件,这里命名为:mbgConfiguration.xml 放在src 目录下. 配置文件内容如下:
<?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> <!-- 配置mysql 驱动jar包路径.用了绝对路径 --> <classPathEntry location="D:\workspace\zw-mybatis\WebRoot\WEB-INF\lib\mysql-connector-java-5.1.2-beta-bin.jar" /> <context id="yihaomen_mysql_tables" targetRuntime="MyBatis3"> <!-- 为了防止生成的代码中有很多注释,比较难看,加入下面的配置控制 --> <commentGenerator> <property name="suppressAllComments" value="true" /> <property name="suppressDate" value="true" /> </commentGenerator> <!-- 注释控制完毕 --> <!-- 数据库连接 mis4_produce--> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/newwww_test?characterEncoding=utf8" userId="root" password="123456"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 数据表对应的model 层 --> <javaModelGenerator targetPackage="com.handly.mybatis.model" targetProject="src"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- sql mapper 隐射配置文件 --> <sqlMapGenerator targetPackage="com.handly.mybatis.mapper" targetProject="src"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- 在ibatis2 中是dao层,但在mybatis3中,其实就是mapper接口 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.handly.mybatis.dao" targetProject="src"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- 要对那些数据表进行生成操作,必须要有一个. --> <table schema="mybatis" tableName="cats" domainObjectName="Cats" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> </table> </context> </generatorConfiguration>
用一个main 方法来测试能否用mybatis 成生成刚刚创建的`category`表对应的model,sql mapper等内容.
创建一个com.yihaomen.test 的package ,并在此package 下面建立一个测试的类GenMain:
package test.user; import java.io.File; import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.exception.InvalidConfigurationException; import org.mybatis.generator.exception.XMLParserException; import org.mybatis.generator.internal.DefaultShellCallback; public class GenMain { public static void main(String[] args) { List<String> warnings = new ArrayList<String>(); boolean overwrite = true; String genCfg = "/mbgConfiguration.xml"; File configFile = new File(GenMain.class.getResource(genCfg).getFile()); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = null; try { config = cp.parseConfiguration(configFile); } catch (IOException e) { e.printStackTrace(); } catch (XMLParserException e) { e.printStackTrace(); } DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = null; try { myBatisGenerator = new MyBatisGenerator(config, callback, warnings); } catch (InvalidConfigurationException e) { e.printStackTrace(); } try { myBatisGenerator.generate(null); } catch (SQLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } }
到此为止,eclipse项目工程图应该如下
相关推荐
MyBatis学习代码: mybatis实战教程mybatis in action之一开发环境搭建 mybatis实战教程mybatis in ...mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis SqlSessionDaoSupport的使用附代码下载
mybatis实战教程(mybatis in action)之一:开发环境搭建 .....................................................mybatis实战教程(mybatis in action)之九:mybatis 代码生成工具的使用 ......................... 41
mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis SqlSessionDaoSupport的使用附代码下载 转自:http://www.yihaomen.com/article/java/302.htm (读者注:其实这个应该叫做很基础的入门...
下载修改数据库名,以及对应的表名,直接运行代码即可生成
1. 用到技术:springboot+mybatis+shiro+rabbitmq+redis项目实战, 2. mybatisplus根据表自动生成dao,service,controler层的增删改成方法,极大提升开发效率 3. 包含功能:登录,用户管理,角色管理,菜单管理。用到...
eblog是一个基于Springboot2.1.2开发的博客学习项目,为了让项目融合更多的知识...基于mybatis plus快速代码生成 封装与自定义Freemarker标签 redis的zset结构完成本周热议排行榜 t-io+websocket完成即时消息通知和群聊
用户管理,菜单管理,角色管理,代码生成 运行环境 jdk8+oracle+redis+IntelliJ IDEA+maven 项目技术(必填) Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis 数据库文件 压缩包内 jar包文件 maven搭建 ...
代码生成器 文档swagger2, http://localhost:9430/swagger-ui.html 使用jwt采用token有效期内刷新机制更新Token。 项目已实现功能包括: 用户登录 用户管理 角色管理 权限管理 菜单管理 【备注】 主要针对计算机...
2. 用到技术:springboot+mybatis+shiro+rabbitmq+redis项目实战, 3. 包含功能:登录,用户管理,角色管理,菜单管理。用到插件:插件:lombok,finbugs,p3c等 4. 项目有源代码,有数据库脚本,可快速部署运行 5...
大家都知道Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,并且手动书写很容易出错,那么今天来介绍一下使用Mybatis-Generator来帮我们自动生成文件。有更好的实现方式欢迎留言...
春云纳科斯假装MySQL 8.0 mybatis-plus(代码生成器待实现) 网关redis(单机,待完善完善) rocketMQ(单机,待完善体现) seata(待分布式测试) xxl-job(待完成) zookeeper(待完成) 技术 多线程-螺纹池(这里...
第3章秒杀业务代码实战 3-1商品列表展示一商品列表展示一 3-2商品列表展示二商品列表展示二 3-3商品详情展示商品详情展示 3-4商品秒杀实战商品秒杀实战 3-5订单编号的生成方式订单编号的生成方式 3-6整合前端实现...
mybatis通过xml或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回。采用ORM思想解决...
044 MyBatis-HikariCP.mp4章节7-Spring-Boot\千锋java教程:045 MyBatis-TkMyBatis.mp4章节7-Spring-Boot\千锋java教程:046 MyBatis-代码生成插件.mp4章节7-Spring-Boot\千锋java教程:047 MyBatis-CRUD.mp4章节8-...
都能够调用它的任意一个方法,常见的应用如下 逆向代码 ,例如反编译 与注解相结合的框架 例如Retrofit 单纯的反射机制应用框架 例如EventBus 2.x 动态生成类框架 例如Gson Java高级程序设计实战教程第三章-Java反射...
**在线阅读** : (上面的地址访问速度缓慢的建议使用这个路径访问) 开源的目的是为了大家能一起完善,如果你觉得内容有任何需要完善/补充的地方,欢迎提交 issue/pr。 Github地址: 码云地址: 重要知识点 基础 ...
MyBatis Generator 代码生成 C3P0 数据库连接池 Ehcache 进程内缓存框架 Apache poi 文件导入导出 Maven 项目构建管理 前端技术 jQuery , Bootstrap 写在最后 本项目是maven项目,当你下载完后,需要自己...
基于SpringBoot+MyBatis+MySQL实现的医院药品管理系统源码+数据库+项目说明.zip 【库存管理】 登记入库的药品。 登记出库的药品。 每日检查库存下限,报警。 每日检查过期的药品,报警并做退回销毁处理。 对有问题的...
guide(上面的地址访问速度缓慢的建议使用该路径访问)重要知识点基础异常处理: , JPA : , 拦截器和过滤器: , MyBatis : , (TODO:早期文章,不建议阅读,待重构〜)进阶Bean映射工具: ,补充实战项目面试...
FastDFS分布式文件服务器,还会涉及到代码生成器, 前台的技术有angularJS和BootStrap框架,此课程内容丰富实战性强,如果你还是传统项目的开发人员,那你学完本课程会有很大的收获,让你的薪资上涨,5K以上,让你完全感受...