最近复现个问题,需要用到MyBatis,了解到可以MyBatis Generator插件自动生成MyBatis的相关代码,确实非常方便。

mybatis-generator就是mybatis代码生成器,在eclipse的配置方式有两种:离线和在线。

1. 在线安装

首先我们需要知道下载地址,最新地址可从Mybatis官网获取,复制链接,

https://marketplace.eclipse.org/content/mybatis-generator

eclipse的"Help-Install NewSoftware",选择"Add",配置该地址,

但是这种在线安装有个问题,就是好像只能下载最新的版本,目前是1.4.0,没太深入研究,用这个生成的MyBatis代码好像都改成接口形式,不再用xml配置了,用起来太生疏。如果要使用旧的,就得用离线安装。

2. 离线安装

GitHub的官网地址,https://github.com/mybatis/generator/releases,可以找到历史版本的链接,例如1.3.7,点击进来,下载第二个zip链接,

解压出来的features和plugins,将其中的包和文件夹,拷到eclipse的features和plugins,重启eclipse,即可完成安装。

然后就可以创建代码了,先创建测试表,

CREATE TABLE userinfo (id int(11) NOT NULL AUTO_INCREMENT,username varchar(45) DEFAULT NULL,password varchar(45) DEFAULT NULL,age int(11) DEFAULT NULL,PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

然后,创建一个新工程,src下写个generatorConfig.xml配置文件,

内容如下,可以看到,其实就主要包括了几个部分,

(1) jdbcConnection配置的连接串,读取数据库表,反向生成映射。

(2) javaModelGenerator配置的Java代码路径。

(3) sqlMapGenerator配置的xml文件路径。

(4) javaClientGenerator配置的Java Client代码路径。

(5) table配置的需要映射的数据库schema和表名。

<?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="context1"><jdbcConnection connectionURL="jdbc:mysql://localhost:3306/test?useSSL=false&amp;serverTimezone=GMT%2B8" driverClass="com.mysql.cj.jdbc.Driver" password="root" userId="root" /><javaModelGenerator targetPackage="bean" targetProject="MyBatis" /><sqlMapGenerator targetPackage="mapping" targetProject="MyBatis" /><javaClientGenerator targetPackage="mapping" targetProject="MyBatis" type="XMLMAPPER" /><table schema="test" tableName="userinfo"><columnOverride column="id" property="id" /></table></context>
</generatorConfiguration>

右键单击generatorConfig.xml,"Run As"执行Run MyBatis Generator,

如果执行成功,显示这些信息,

MyBatis Generator Started...Buildfile: D:\Dev\Eclipse\workspaces\.metadata\.plugins\org.mybatis.generator.eclipse.ui\.generatedAntScripts\MyBatis-generatorConfig.xml.xmlBUILD SUCCESSFUL
MyBatis Generator Finished

红框内的代码,都是自动生成的,

写个配置文件,mybatis-config.xml,如下所示,

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><environments default="development"><environment id="development"><!--事务管理配置--><transactionManager type="JDBC"/><!--数据源配置--><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false&amp;serverTimezone=GMT%2B8"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environments><mappers><!--这里的resource对应上一步自动生成的mapping/UserinfoMapper.xml文件--><mapper resource="mapping/UserinfoMapper.xml"/></mappers>
</configuration>

写个测试类,执行插入操作,

import java.io.IOException;
import java.io.InputStream;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import bean.Userinfo;public class Test {public static void main(String[] args) {try {Userinfo userinfo=new Userinfo();userinfo.setUsername("usernameValue");userinfo.setPassword("passwordValue");//读取mybatis-config.xml配置String resource="mybatis-config.xml";InputStream inputStream=Resources.getResourceAsStream(resource);//生成SqlSessionFactorySqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);//生成SqlSessionSqlSession sqlSession=sqlSessionFactory.openSession();//执行插入操作sqlSession.insert("insert",userinfo);//提交事务sqlSession.commit();//关闭会话sqlSession.close();} catch (IOException e) {// TODO: handle exceptione.printStackTrace();}}
}

数据写入表了,

从操作来讲,还是比较方便的,只需要设置反向映射的路径、数据库配置,就可以生成MyBatis所需的基础代码,再写个config连接数据库的配置文件以及测试类,就可以实现MyBatis操作数据库了。

但是,调试过程,还是比较坎坷的,碰到了很多坑,在这提下。

问题1,执行Run MyBatis Generator的时候,提示如下错误,

看着是JDBC驱动问题,但是包都引入了,要快速解决,可以右键generatorConfig.xml,选择"Run Configuration",

Classpath的"User Entries",将jdbc的jar引进来,就可以执行了,

问题2,执行Run MyBatis Generator的时候,还可能提示如下这个错误,

如果连的MySQL,就会碰到这问题,解决方案是需要在jdbc连接串中增加serverTimezone参数,如下所示,

jdbc:mysql://localhost:3306/test?useSSL=false&amp;serverTimezone=GMT%2B8

这其中可能有包括两个知识点,

(1) 之所以使用到了GMT%2B8,因为北京时,是东八区,如果写成UTC,就相差了8个小时。

(2) jdbc中如果含多个参数应该用"&"隔开,但是写在xml中,"&"就是特殊字符了,需要改成"&amp;",否则不识别。

问题3,创建生成的MyBatis代码可能出现这些引用包的错误,

此时可以到maven大本营仓库,https://mvnrepository.com/,检索包名,

找到和当前的MyBatis版本兼容的jar,下载引入,

可能很多朋友,有相同的感觉,调这种问题,就想升级打怪,解决一个,可能又出来另外一个,或者解决另外一个的时候,发现之前解决的不太对,过程可能很崩溃,但是换个角度,这些都是成长的积累,碰到的问题越多,积累就会越丰富,所以不用怕碰到问题,但是一定得有自己的思考,形成知识库,成为自己的财富,否则只是机械地解决问题,下次碰到了,还是不懂。

近期更新的文章:

《缓存一致性解决方案介绍》

《从球衣了解“红魔”曼联历史》

《MySQL中SQL执行慢的一种可能的原因场景》

《什么是Oracle索引扫描的批量回表操作?》

《降噪耳机的原理》

文章分类和索引:

《公众号900篇文章分类和索引》

MyBatis Generator的使用和坑相关推荐

  1. MyBatis Generator分页插件RowBoundsPlugin坑

    一.Mybatis Generator设置分页 Mybatis Generator没有设置分页,但自带了个RowBoundsPlugin分页插件,故而配置 <plugin type=" ...

  2. 用mybatis的generator自动生成代码--坑我都走了一遍,后面的同学别踩了

    先说什么是mybatis-generator? mybatis-geneator是一款mybatis自动代码生成工具,可以通过配置,快速生成mapper和xml文件. 步骤一:在pom文件中添加插件配 ...

  3. Mybatis generator 1.4.x 入门教程--转载

    Mybatis generator 1.4.x 入门教程 一.前言 ​ 最近因为公司开了新的项目,所以在构建骨架的时候发现mybatis最新的版本已经更新到了1.4.0了,尝试了一下,比起之前的myb ...

  4. Springboot—mysql+mybatis+generator插件

    1.idea-generatorConfig.xml <?xml version="1.0" encoding="UTF-8"?> <!DOC ...

  5. 取代 Mybatis Generator,这款代码生成神器配置更简单,开发效率更高

    作为一名 Java 后端开发,日常工作中免不了要生成数据库表对应的持久化对象 PO,操作数据库的接口 DAO,以及 CRUD 的 XML,也就是 mapper. Mybatis Generator 是 ...

  6. MyBatis学习总结(9)——使用MyBatis Generator自动创建代码

    2019独角兽企业重金招聘Python工程师标准>>> 由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所 ...

  7. SpringBoot如何自动生成实体类和Dao层以及映射文件(mybatis generator 自动生成代码)

    一.首先添加自动生成代码插件 <!-- mybatis generator 自动生成代码插件 生成时解除注释 --><plugin><groupId>org.myb ...

  8. idea mybatis generator插件_在idea中使用mybatis generator逆向工程生成代码

    用maven工具生成mybatis的代码和映射文件. 1.配置pom.xml文件 在pom.xml下添加插件如下: <build> <finalName>zsxt</fi ...

  9. Spring Boot项目利用MyBatis Generator进行数据层代码自动生成

    概 述 MyBatis Generator (简称 MBG) 是一个用于 MyBatis和 iBATIS的代码生成器.它可以为 MyBatis的所有版本以及 2.2.0之后的 iBATIS版本自动生成 ...

最新文章

  1. 文件fluent_胡言4种Fluent二次开发姿势
  2. HDU1011 Starship Troopers(树形dp)
  3. 真实的linux系统是怎样的,只使用Linux系统是怎样一种体验?_科技数码通
  4. 洛谷 2777 [AHOI2016初中组]自行车比赛
  5. .NET开发人员犯的6大安全错误
  6. win7美化_Potplayer64位美化版,无棒子的tv推送
  7. 关于开源中国手机App的说明
  8. 【算法分析与设计】鸡尾酒排序
  9. MySQL工作笔记-建表时为Float型数据确定精度,查询时精度显示,多列之和查询
  10. 302状态码_HTTP状态码status code详解
  11. 视频点播服务器实现视频转码和视频播出功能
  12. tensorboard特征图可视化
  13. 论文页眉奇偶页不同怎么设置_什么!论文排版这么简单的吗?!
  14. unidac连接ORACLE免装客户端驱动
  15. 11G新特性 -- ASM Fast Mirror Resync
  16. 一文带你了解微信/支付宝支付的相关概念
  17. Mybatis-学习笔记(7)缓存机制
  18. paip.函数方法回调机制跟java php python c++的实现
  19. 浏览器辅助神器:油猴脚本使用教程
  20. 什么叫运营---一个人,一张网,一艘船,独钓寒江雪!

热门文章

  1. 有趣的历史,据说都是真的
  2. 共享汽车租赁系统(SSM,JSP,MYSQL)
  3. 如何安全使用计算机英语作文,f8进入电脑安全界面全都是英文怎么操作
  4. 分布式系统CAP理论解析
  5. Python办公自动化,全网最全整理!
  6. win7 docker linux,win7安装docker并部署CentOS+宝塔环境
  7. IBM笔记本真假辨认手册
  8. 【电竞数据】电竞实时指数数据API接口调用和数据推送
  9. 你需要的Linux命令这里都有
  10. 洗牌算法(Knuth-Durstenfeld Shuffle)