从这一篇开始,我们就正式踏入了 MyBatis 的学习,废话不多说,开始干
一、MyBatis 下载 & 环境准备
1. 下载
我们先来用 MyBatis 写一个简单的例子,但是,我们既然要用这个 MyBatis,我们就需要去下载一下 MyBatis 所要用到的 Jar 包,这里呢,MyBatis 官网都已经给我们整理好了,打开官网,点击入门
然后点击这个,进入到 MyBatis 的 GitHub 主页
然后我们就直接使用这个最新版 3.5.6,选择这个 zip 文件,点击下载~
下载好之后解压到桌面,我们先来看看里面有啥
很简洁,就这点东西,首先是 lib,这个里面放着你可能用到的一些 jar 包,当然,我们不用。
接着外面有一个 LICENSE,这个是许可证,我们也不用,NOTICE 是告示,我们也不用。
有用的就只有 mybatis-版本 这个 jar 包,还有下面的文档,当然啦,这个文档其实就是官网的教学文档,可以看可以不看,我推荐是看一下
2. 环境准备
然后我们打开我们的 eclipse,创建一个 Java Project 的工程,名字就叫 mybatis_test
就这样就可以了
接着我们开始创建文件夹(就是 new 一个 Folder),创建一个 mybatis 文件夹,创建一个 jdbc 文件夹
创建好之后,将 mybatis-版本的 jar 放在 mybatis 中,然后再去弄一个 mysql-connection-java 的连接数据库要用的 jdbc 包,这个放在 jdbc 中,并且都添加到构建路径中
添加好之后,我们还得弄点东西
打开官网,找到入门,往下翻,可以看到这么一个东西
我们按照官网指示,在 src 目录下创建一个文件:mybatis-config.xml,并且在里面添加如下内容
当然,这里面的这些配置我们后面再说,我先告诉大家怎么修改,直接上图!
首先,我们先添加一个 typeAliases,这个是类型别名,后面我们来说具体作用,固定就是将类名当做别名,type 是类所在的位置,而 alias 就是别名的名字。
然后就是配置我们的 JDBC 的连接,这个我们学过 JDBC 大家应该不陌生了,这里需要注意的是,XML 不识别 & ,需要将 & 修改成 & 一定要记得后面还有一个分号啊,不然会后面报错。
最后就是修改 mappers,这个是 xml 文件映射,最好就是一个实体类对应一个这个映射。
这些都弄好之后,我们打开我们的数据库,创建一个新的数据库,这里我们需要创建一个 mybatis 的数据库,然后创建一个表,我们叫 t_student,并且添加几个字段,SQL 如下
CREATE TABLE `t_student` (
`id` int(0) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '姓名',
`age` int(0) NULL DEFAULT NULL COMMENT '年龄',
`schoolId` int(0) NULL DEFAULT NULL COMMENT '所在学校id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
这里我们主键是递增的,然后这个学校 id 我们后面会用到,也先添加上。
二、Hello MyBatis 实现
前面我们准备好之后,我们现在开始写实现
首先先把 Student 实体创建好。
这里要注意,我们这两个需要做对应,不然到时候找不到会报错,接着我们把属性、构造方法、get/set、toString 都写上
写完之后,我们再回头看官网的文档
我们还需要创建一个 SqlSessionFactory,这个 SqlSessionFactory 是一个工厂,主要用来提供 SqlSession,而 SqlSession 是用来操作数据库的,我们可以按照官网所说,从 XML 中构建一下 SqlSessionFactory
我们来创建一个 Util 包
这里我们需要创建一个单例模式,用来提供 SqlSession,废话不多说,直接上代码
有了 SqlSession 之后,我们再来去创建映射器,这里是一个 Java 接口,名字叫 StudentMapper
这里注意一下,这里的映射器和我们配置文件里的映射器是不一样的,不要搞混了
一个是 xml,这里我们还没有创建呢,我们弄得是 StudentMapper.java !
然后我们写一个添加的接口
写好之后,我们在这个目录下面再创建一个 xml 的文件,里面的内容,我们直接复制官网上的即可,复制 探究已映射的 SQL 语句,这个地方的
接着我们修改一下 xml 里面的内容
这里的这个 mapper 里 namespace 指的就是我们的映射器接口的地址
然后就是这个 insert 标签,id 就是我们刚刚定义的接口方法名称,parameterType 就是传递的参数类型,这里我们直接写 Student,因为我们前面设置过别名了,如果没有别名,我们这里需要写成完整的包路径,也就是这样的
当然,我们既然配置了,我们就直接简写成 Student 即可。
然后就是 SQL 了,一条很简单的 SQL 语句,这里的参数,我们需要用 #{} 括起来,固定写法,而里面的值,就是指的实体类中的属性,不是数据库的,这里需要记住一下!!!
而除去 #{} 之外,其实还有一个,那就是 ${},他俩是有区别的,这里我们后面说,先了解一下
写好之后,我们再去创建一个 StudentTest 类,用来测试我们刚刚写的代码
第一步,我们先获取我们的 SqlSession
拿到 SqlSession 之后,我们可以通过它的一个方法,getMapper,将我们刚刚创建的 StudentMapper 接口拿到
接着我们直接用 StudentMapper 调用 add 方法,虽然是一个接口,但是,我们可以直接去调用,这个就是 MyBatis 的强大。
这里需要注意的是,MyBatis 也是支持事务的,所以,我们需要在 insert、update、delete 之后,进行事务的提交,不然这个数据不会添加到数据库中。
写好后,我们运行一下~
再来看一下数据库
也是OK的。
到这里为止,我们的 Hello MyBatis 就完成了,东西有点多,大家好好消化一下。
大家可以自己好好查查看,有不懂的可以联系我 QQ:2100363119
欢迎大家访问我的网站:https://www.lemon1234.com
可以的话关注一下我的公众号,就在我网站,每天都有更新~~~,无限资源畅游 Java,感谢~
最近小程序也开放了,大家可以扫码进行玩玩看