![MyBatis从入门到精通](https://wfqqreader-1252317822.image.myqcloud.com/cover/796/47378796/b_47378796.jpg)
1.3.5 编写测试代码让MyBatis跑起来
首先在 src/test/java 中创建 tk.mybatis.simple.mapper 包,然后创建 CountryMapperTest测试类,代码如下。
![](https://epubservercos.yuewen.com/993C51/26763610401277506/epubprivate/OEBPS/Images/29_1.jpg?sign=1738866449-u2GA12aFq7lAzq0Ue5tBJqXNalskix7i-0-20d54bf3329416d28a6e1c8de8f9e067)
![](https://epubservercos.yuewen.com/993C51/26763610401277506/epubprivate/OEBPS/Images/30_1.jpg?sign=1738866449-Om6XqEkCmo8Qm8OwJhPLyyUZQz0v2OZb-0-28510d493c0eeaf4010ff70c98f647a5)
对上面这段代码做一个简单的说明,具体如下。
· 通过Resources工具类将mybatis-config.xml配置文件读入Reader。
· 再通过SqlSessionFactoryBuilder建造类使用Reader创建SqlSessionFactory工厂对象。在创建SqlSessionFactory对象的过程中,首先解析mybatis-config.xml配置文件,读取配置文件中的mappers配置后会读取全部的Mapper.xml进行具体方法的解析,在这些解析完成后,SqlSessionFactory就包含了所有的属性配置和执行SQL的信息。
· 使用时通过SqlSessionFactory工厂对象获取一个SqlSession。
· 通过SqlSession的selectList方法查找到CountryMapper.xml中id="selectAll"的方法,执行SQL查询。
· MyBatis底层使用JDBC执行SQL,获得查询结果集ResultSet后,根据resultType的配置将结果映射为Country类型的集合,返回查询结果。
· 这样就得到了最后的查询结果countryList,简单将结果输出到控制台。
· 最后一定不要忘记关闭 SqlSession,否则会因为连接没有关闭导致数据库连接数过多,造成系统崩溃。
上面的测试代码成功执行后,会输出如下日志。
![](https://epubservercos.yuewen.com/993C51/26763610401277506/epubprivate/OEBPS/Images/30_2.jpg?sign=1738866449-wY0f95B5CEVE3bGqAkkeWAHYA1T4T8fF-0-b1a6b16bcd2988b8ef9436accc02a059)
![](https://epubservercos.yuewen.com/993C51/26763610401277506/epubprivate/OEBPS/Images/31_1.jpg?sign=1738866449-LQ4n0lMX5A3z3jiS1PUTwG4usqLRbbp0-0-e8595169642732b43f2a0a47867f76d0)
从日志中可以看到完整的SQL输出和结果输出,从日志对应的级别可以发现SQL、参数、结果数都是DEBUG级别,具体的查询结果列和数据都是TRACE级别。
通过一系列的操作,我们让一个简单的 MyBatis 例子跑了起来,相信大家现在对 MyBatis已经有了初步的了解。
提示!
simple项目下载地址:http://mybatis.tk/book/simple-start.zip。
在学习这部分代码时,如果程序无法运行,或者不知道这些配置和测试类该写到哪里,都可以从该网址下载这部分的完整代码,通过对比来解决问题,或者直接使用这部分基础代码来继续学习接下来的内容。