目录
Mybatis 官网提供了很多Mybatis的项目、Mybatis和其他框架集成的依赖包(包括和Spring Boot等),详细的信息可以在官网上查询,这篇文章只介绍常用几个项目。
项目 | 描述 | 文档或插件 |
---|---|---|
MyBatis 3 | SQL Mapping Framework for Java | 文档链接 |
Generator | Code generator for MyBatis | 文档链接/Eclipse插件 |
MyBatipse | Eclipse plugin for MyBatis | Eclipse插件 |
在正式介绍Mybatis框架之前,新介绍官方提供的两个插件的用途和用法,但是如果读者之前完全没有接触过Mybatis,可以先跳到第三章了解Mybatis框架后再回头看这里提供的工具,会发现工具在很大程度上减轻了开发的工作量。
Mybatis Generator是一个代码生成器,根据指定的xml文件可以生成对应的代码。详细的xml文件参数可以查阅文档,这里介绍常用的几个参数。
<generatorConfiguration>
<classPathEntry location="E:\\huyp\\workspace2\\Mybaits_20161208\\libs\\mysql-connector-java-5.1.35.jar" />
<context id="context1">
<jdbcConnection
connectionURL="jdbc:mysql://localhost:3306/db_spring"
driverClass="com.mysql.jdbc.Driver" password="" userId="root" />
<javaModelGenerator targetPackage="huyp.spring.dao.entity"
targetProject="SpringLearning/src/main/java" />
<sqlMapGenerator targetPackage="dao" targetProject="SpringLearning/src/main/resources" />
<javaClientGenerator targetPackage="huyp.spring.dao.mapper"
targetProject="SpringLearning/src/main/java" type="XMLMAPPER" />
<table schema="db_spring" tableName="USER">table>
context>
generatorConfiguration>
节点 | 描述 |
---|---|
classPathEntry | 数据库的JDBC驱动的jar包地址 |
context | 每个不同的数据源在自己的context中进行配置,如果连接多个数据源,可以配置多个context |
jdbcConnection | 数据库连接的信息:驱动类、连接地址、用户名、密码 |
javaModelGenerator | 生成Model类(实体类)存放位置,Mybatis默认生成的实体类类名就是表名 |
sqlMapGenerator | 生成xml映射文件的存放位置 |
javaClientGenerator | 生成Dao接口(和xml映射文件对应的接口)的存放位置 |
table | 要生成文件对应的表,schema是数据库名,tableName是表名 |
到现在为止,Mybatis Generator的最基本的配置已经配置完成,在Eclipse中安装了插件之后就可以右键执行以下这个文件,如果配置正确会发现项目中在相应的位置多出四个文件:
User就是数据库中USER表对应的实体类,UserMapper是对应的接口文件,UserMapper.xml就是对应的SQl文件;这里还有一个UserExample,这个是Mybatis Generator生成的具有一些默认操作,增、删、改和查等操作的默认执行方法,具体的大家可以查看生成的Example文件。后面介绍框架的时候会介绍Example类的使用。
官网还提供了很多个性化的配置,详细大家清查阅官网,后期如果使用了其他的参数会更新这个文档~
这个工具一定是要在使用Mybatis开发一段时间后,才会对它带来的方便之处感激涕零。
功能点:
当你对某个表的操作非常复杂,在Mapper接口写了很多的方法,意味着在对应的xml文件中也会存在大量的SQL语句,这个时候你想查找到接口中方法对应的SQL是非常烦人的!
解决:使用这个工具,你可以在方法上直接跳转到对应的SQl位置:
右击接口中的方法,会出现跳转选项,如下图:
甚至可以在调用这个方法的地方直接跳转,如下图:
点击后,将会直接条状到SQl语句对应的位置,如下图:
在Eclipse中使用快捷键Alt+/可以自动补全,是不是觉得很方便,但是在xml映射文件中却无法对类和变量进行自动补全。
解决:使用这个工具,你可以在xml文件中也享受到自动补全的快感啦!
定义resultMap,如下图:
我觉得还是不够方便,我不想一个一个写,我要一次性完成一个resultMap,如下图:
定义一个select语句(其他的操作语句同理),如下图:
自从用了这个工具,妈妈再也不用担心我写错变量名,写错变量类型啦!
当然,如果你不使用XML文件,而是采用注解的方式,上面所说的所有的补全方式也是适用的哟!
有的时候一个SQL的查询条件特别多,那么接口中方法的参数也特别多,这个时候给每个参数加上@Param注解是一件非常烦人的事情。
解决:使用这个工具,你可以一个快捷键搞定所有的参数!
用鼠标点击一下接口中的方法,然后按下Ctrl+1快捷键,将会弹出一个提示,如下图:
点击最上面的添加注解,你会发现麻烦事瞬间完成!如下图:
有的时候我们会验证SQL语句执行的结果是否正确,可能会从日志中将打印出的SQL语句拿到数据库去执行一下,但是你会发现日志中是这样的,如下图
然后我们要把第一行复制到数据库中,然后再把第二行复制到问号的位置,而且还要加上引号,最后才能执行这句SQl,现在是一个参数,如果是几个,十几个呢,整个人处于崩溃的边缘!
解决:使用这个工具,你可以畅快的复制日志中的SQL语句,然后复制到数据库中,愉快的执行啦!
首先复制日志中的SQl语句, 注意: 要从第一个 ==>符号复制到最后一个<==符号,然后右击鼠标,会出现下面这个选项,如下图:
然后复制到数据库中,你就会发现自动转换了,如下图:
惊不惊喜??意不意外!!
到目前为止,以上的两个工具的常用功能基本介绍完毕,是不是感觉学Mybatis的动力大了许多许多!!!
因为时间关系,Mybatis框架部分会再之后更新,感兴趣的小伙伴记得收藏这篇文章哟!嘿嘿嘿~