Mybatis框架的简单运用
一、配置流程
1.流程示意图(通过XML映射文件实现):
![2999b7418e8b31cfac54ab2443ddbbdf.png](https://img-blog.csdnimg.cn/img_convert/2999b7418e8b31cfac54ab2443ddbbdf.png)
2.流程:
2.1 导入包:
2.1.1 下载包
数据库驱动包(本文以MySQL为例):https://mvnrepository.com/artifact/mysql/mysql-connector-java
Mybatis框架包:https://mvnrepository.com/artifact/org.mybatis/mybatis
![d67b490d94de7a48fba1917caa2dd7e9.png](https://img-blog.csdnimg.cn/img_convert/d67b490d94de7a48fba1917caa2dd7e9.png)
2.1.2 导入程序
将jar包放入程序新建的文件夹
![874d4c0f83016c2329affa4c0a82a3ae.png](https://img-blog.csdnimg.cn/img_convert/874d4c0f83016c2329affa4c0a82a3ae.png)
选中jar包,右键Build Path->Add to Build Path,结果如图,jar包已加载进程序内
![200875c77d5d9a04b17ac40fa3ba73bd.png](https://img-blog.csdnimg.cn/img_convert/200875c77d5d9a04b17ac40fa3ba73bd.png)
2.2 添加规则文件
规则文件的位置:①mybatis-3.4.1orgapacheibatisbuilderxml
②打开上面下载的Mybatis框架文件夹,查找dtd
![f99d1c1ec9c247c6b65a70c1e9fdad50.png](https://img-blog.csdnimg.cn/img_convert/f99d1c1ec9c247c6b65a70c1e9fdad50.png)
规则文件的Key:官方文档内Ctrl+F查找public:
![8825ff98846dbd0d154cbf446369f94d.png](https://img-blog.csdnimg.cn/img_convert/8825ff98846dbd0d154cbf446369f94d.png)
![7748f4b7b9599af412a095616a9ea1ce.png](https://img-blog.csdnimg.cn/img_convert/7748f4b7b9599af412a095616a9ea1ce.png)
选择Window->Preferences
![ef95837a7033b4b7358115bd4c64ee1f.png](https://img-blog.csdnimg.cn/img_convert/ef95837a7033b4b7358115bd4c64ee1f.png)
![48f700dfe1e658f67a84b19d1f2b9664.png](https://img-blog.csdnimg.cn/img_convert/48f700dfe1e658f67a84b19d1f2b9664.png)
点击OK,重复上面的操作,完成添加Mapper规则文件。
2.3.编写配置文件
2.3.1 创建XML文件
在src文件下创建XML文件,填写文件名为MybatisConfig.xml,然后Next:
![82568cf9fd26101458bb398c58bfe3fd.png](https://img-blog.csdnimg.cn/img_convert/82568cf9fd26101458bb398c58bfe3fd.png)
选择DTD文件,然后Next,
![f16cedcbdaf90717f1b18935be18ecce.png](https://img-blog.csdnimg.cn/img_convert/f16cedcbdaf90717f1b18935be18ecce.png)
选择创建配置文件,然后Next->FInish,创建成功。
2.3.2 编写文件
![a0361c6e25174e7f3eac897188eb7a8d.gif](https://img-blog.csdnimg.cn/img_convert/a0361c6e25174e7f3eac897188eb7a8d.gif)
MybatisConfig.xml
2.4 映射文件和映射接口
因为映射文件和映射接口要向对应,所以使用相同命名表示他们的对应关系,在多映射文件中可以很好找到相对应的接口
![98906a45cda21c9b0c1bae69998dc712.png](https://img-blog.csdnimg.cn/img_convert/98906a45cda21c9b0c1bae69998dc712.png)
创建一个映射文件,
![a0361c6e25174e7f3eac897188eb7a8d.gif](https://img-blog.csdnimg.cn/img_convert/a0361c6e25174e7f3eac897188eb7a8d.gif)
StudentMapper.xml
![a0361c6e25174e7f3eac897188eb7a8d.gif](https://img-blog.csdnimg.cn/img_convert/a0361c6e25174e7f3eac897188eb7a8d.gif)
StudentMapper.java
通过XML中的标签的namespace属性,来绑定对应的接口,标签的id属性值为借口中的方法名
2.5 POJO
![a0361c6e25174e7f3eac897188eb7a8d.gif](https://img-blog.csdnimg.cn/img_convert/a0361c6e25174e7f3eac897188eb7a8d.gif)
Student.java
与数据库中的一个表对应的实体类,实现set/get方法
2.6 会话构建工具类
![a0361c6e25174e7f3eac897188eb7a8d.gif](https://img-blog.csdnimg.cn/img_convert/a0361c6e25174e7f3eac897188eb7a8d.gif)
MybatisUtils.java
为什么只对外开放一个工厂?
答:因为如果出现多个数据源,数据库的连接就可能来自于不同的数据源!导致数据库连接无法同步,从而导致事务失效!
为什么要声明一个线程变量?
答:同访问的一条线程,获得的会话是相同的,实现线程安全
2.7.测试
![a0361c6e25174e7f3eac897188eb7a8d.gif](https://img-blog.csdnimg.cn/img_convert/a0361c6e25174e7f3eac897188eb7a8d.gif)
Test.java
当控制台输出一个大于0的数字,表示成功实现运用mybatis框架操作数据库
2.8 修改为注解实现
2.8.1 流程示意图:
![6ca4be17e499bc7978c88d25c7791f8e.png](https://img-blog.csdnimg.cn/img_convert/6ca4be17e499bc7978c88d25c7791f8e.png)
2.8.2 修改代码:
StudentMapper.java
MybatisConfig.xml
删除映射文件,然后测试代码。