首先提供三个网址,基于Mybatis框架使用的三个资源网址:
1.Mybatis官方文档网址:
https://mybatis.org/mybatis-3/zh/getting-started.html2.Mybatis的jar包与源码等内容的下载网址:
https://github.com/mybatis/mybatis-3/releases3. 最新版的Mybatis的Maven仓库:
https://mvnrepository.com/artifact/org.mybatis/mybatis/3.5.6
一、搭建实验数据库
该步操作在SQLyog软件中进行:创建数据库——创建表——向表中添加数据:
![c7aa47afaeb4fd96581f4c6198528765.png](https://i-blog.csdnimg.cn/blog_migrate/1e79686dc47f268a91c3a344f6d3dde6.png)
二、新建项目1.在IDEA中新建项目:新建——项目——Maven项目2.在该项目中删除src目录(如此,将该项目当作为父工程)3.在该新建父工程中导入依赖(即手动加入三个支持文件:mysql、mybatis、Junit),代码导入即可,会自动从Maven网站下载添加:
![0a7a2110bb1799a99724fae007c1e5bc.png](https://i-blog.csdnimg.cn/blog_migrate/8d020c1a9dc2e3b298149dd26007157d.png)
![49d9ce31147bf9853a0f85dab02a24c4.png](https://i-blog.csdnimg.cn/blog_migrate/6103d4002eeb66b23a7af1996f34013c.png)
4.确认导入依赖成功:右侧点击进入Maven查看,在该目录下存放是三个依赖包
![11c64776f95a596832af0f580c9e3234.png](https://i-blog.csdnimg.cn/blog_migrate/4f73ae4f035fe952e9411efb5f1af5c5.png)
三、创建模块1.在Mybati-study名下新建一个模块,命为mybatis-01,添加为Mybati-study的子模块:
![7d2151e9abc960de53a5523f163240c6.png](https://i-blog.csdnimg.cn/blog_migrate/a48c58bf4f102f59f7403870baa48e7a.png)
2.编写mybatis核心配置文件:在Maven中的src的main的resource的名下新建文件mybatis-config文件:
![b09a5c247e40ea093e086e1657191c75.png](https://i-blog.csdnimg.cn/blog_migrate/1b2bf6cc6e67713a664eb07f2860af43.png)
3.将Maven官方文档中的配置框架代码(如下图)复制过来(新建文件)中使用:
![451b465d5fb2f9d0fe6fc3d747de950f.png](https://i-blog.csdnimg.cn/blog_migrate/965d2d9941bf8fa86f5da78d5f3a461b.png)
4.修改其中部分配置参数(driver、url、username、password):(1)其中driver配置参数为:(2)配置url时,我们手动连接数据库:Database——添加——Data Source——Mysql——输入user与password相关信息进行数据库连接——Schema——选择其中mybatis数据库导入:
![41c65b5c746838d8fb83804ba89fb868.png](https://i-blog.csdnimg.cn/blog_migrate/9486c014c41b58d53739b0f2039d84dc.png)
(3)连接后将标准的url语句复制使用,并在其后继续添加其他的一些相关信息,最终url完整版的语句为:
![58be64b0c2a290268bc8a73bce219faf.png](https://i-blog.csdnimg.cn/blog_migrate/62ed540f5112a8c20ab921fb57692728.png)
(4)配置username时,将名字参数修改为:root(5)配置password时,将密码参数修改为:0000最终代码如下所示:
![22ba40ddda34b91708f94cd5350a437c.png](https://i-blog.csdnimg.cn/blog_migrate/160fdc62a911157a08e56da11706f098.png)
四、编写Mybatis工具类1.在main——java目录下创建com.kuang.dao包与utils包。创建好之后,在utils包名下新建一个MybatisUtils工具类,层次目录如下图所示:
![5529d4f2e801295456770a9087c82469.png](https://i-blog.csdnimg.cn/blog_migrate/e970de6033b76269a7698cbd3f7dd4d9.png)
2.使用Mybatis第一步:获取sqlSessionFactory对象
![ad0f14ebe9db5e588cedba55da5f0e86.png](https://i-blog.csdnimg.cn/blog_migrate/c081e7b3ddb5d24f308174fd9568afe1.png)
【注意】由于我们上面将sqlSessionFactory对象置于静态方法体内部,在后续的方法体中无法使用该对象,故我们提升其权限,将类内该sqlSessionFactory对象置于函数体最前方,使下面的各方法体均可调用,上面代码升级后变为如下代码:
![46bcafdee28d5321aa2afd8436855e38.png](https://i-blog.csdnimg.cn/blog_migrate/3e9f52508672564e081789f1ccee24f1.png)
3.通过sqlSessionFactory对象,调用其方法,返回SqlSession对象:
![1ebf9683f9824e1ce0b8c1fcf41091ff.png](https://i-blog.csdnimg.cn/blog_migrate/9664962a8691aa35dd66f52f6b8e3a68.png)
五、编写代码:
以上步骤完成了数据库连接对象的生成,下面编写具体的代码,大致分为以下三步:
(1)实体类;(2)Dao接口;(3)接口实现类1.实体类的编写新创建pojo包,在该包中定义User实体类,在该实体类中定义id,name,pwd等变量,添加有参构造方法、无参构造方法、Getter、Setter及toString方法:
![4fa93bf13c7df63d6d162ade7812e841.png](https://i-blog.csdnimg.cn/blog_migrate/68b0670e9700328462403148d67a1043.png)
![afa3b922c7c3cefbbc2470f822e8defb.png](https://i-blog.csdnimg.cn/blog_migrate/a46cc2eabb233d35fd86e563cfe94643.png)
![def0bd7ce1402731dcd6142be9bc4c29.png](https://i-blog.csdnimg.cn/blog_migrate/2295224241c1052c52fa3d433ca65c7c.png)
2.Dao接口的编写在Dao包目录下,创建接口UserDao接口,并在该接口中定义方法,创建接口及编写方法如下:
![f7d265f906f5c11fab626711887ad9d6.png](https://i-blog.csdnimg.cn/blog_migrate/a40c54376f264271fb0af284584f21b9.png)
![b51e8ba2024a60b3c1c3b0915eefa10f.png](https://i-blog.csdnimg.cn/blog_migrate/ea93d4abc8b349642415d7d76a053142.png)
3.编写Mapper.xml配置文件(相当于接口实现类,由之前的UserDaoImpl转变为一个Mapper配置文件):
创建文件UserMapper.xml。创建文件后需要与UserDao进行绑定使用,在namespace中绑定一个指定的编写好的UserDao接口,在id中指定Dao接口中的方法名,结果填写User泛型中,具体代码如下所示:
![4956159deabbc478c241b7e3729c17f3.png](https://i-blog.csdnimg.cn/blog_migrate/a5c7f9ed20cf33b5522c8ba51013fd92.png)
六、编写测试类:使用Junit测试:在test名下的java名下创建Maven测试包,
![45f27e2f03f6b250c370204e839e70a2.png](https://i-blog.csdnimg.cn/blog_migrate/676e11abc12a0af0541e37a57a7c121b.png)
在该测试包下上面src下main下的java对应创建com.kuang.dao包,在com.kuang.dao包下创建UserDaoTest测试类。
![2c0e19a9a71f302fa5b58196f2e1e022.png](https://i-blog.csdnimg.cn/blog_migrate/5fad9e8d69f246a2b3ae7bb13436b771.png)
编写测试类具体代码,
![79508f3abb690df0cb2b26f796d693d2.png](https://i-blog.csdnimg.cn/blog_migrate/ab85557bfbf3dfc23601f2b463804d2e.png)
七、运行调错
1.调试以上主类代码,产生错误如下:
![0d01eb1335fccabd19edb6bd497b8c1e.png](https://i-blog.csdnimg.cn/blog_migrate/0533621c9030b512d732088bc2f7748e.png)
该报错 意为:在Mapper注册中心中,类型接口Dao是未知的解决办法为:在核心配置文件mybatis-config.xml中,加入Mapper.xml的注册文件,具体如下:
![c4d5eadd50407ae21ce70ba7c226a9a2.png](https://i-blog.csdnimg.cn/blog_migrate/19b4ff99ffb43af0f67a66badd60d1bf.png)
2.上述代码完成配置后,再次运行,会再次产生代码报错,产生错误如下:
![5f06d376cb08384d983f11a68982f1d2.png](https://i-blog.csdnimg.cn/blog_migrate/d0ad31a104775e3d94dd023e261fc8e2.png)
该报错 意为:资源过滤问题。初始化异常失败!即在Target目录下没有生成对应的xml文件,如下图示意:
![0e4ccb77d11227e908120177f49c5232.png](https://i-blog.csdnimg.cn/blog_migrate/730ca16848d6e252e4cd969994636b57.png)
简单的解决办法为:将上面的UserMapper.xml文件复制一份到下面的dao目录下,即可再次调试运行,会显示成功!运行成功结束后会显示数据库相关数据,如下图所示:
到此为止,实现了使用Mybatis框架实现对数据库数据的遍历!