Mybatis的应用程序实例
1. 环境搭建
1.1 搭建数据库
本小节是运用navicat进行MySQL数据库的创建如下:
新建自己所需要的数据库,本小节测试用例的数据库名为mybatis,然后建立表user并添加三个数据如下所示:
接下来用软件IDEA进行测试连接,首先在idea中新建自己的数据库。如果没有下面选项,需要先到File选项中seting的Plugins中先下载database插件,然后再新建。
选择MySQL数据,新建可得到如下所示:
然后根据MySQL数据库的属性信息,相对应的输入自己的连接名称,用户名,数据库名称以及数据库密码等,然后进行测试连接。
注:一开始连接可能会出现如下错误:
其解决方法为:
1.2 配置Mybatis环境
在Flie选项的Setting中找到Plugins,安装好Mybatis插件并进行重启idea.
2. 导入mybatis程序
在idea中新建一个maven文件,新建好后在pom文件中导入分别依赖。
在resources中新建一个config的xml文件,并编写好核心配置文件(主要为改写连接MySQL数据库Value的值)如下所示:
接下来参照mybaits中文官网https://mybatis.org/mybatis-3/zh/getting-started.html进行设计。
首先编写mybatis的一个工具类来对数据库进行管理,主要内容为建立一个包com.kuang.utils中的mybatisUtils工具类,根据中文文档中的XML中构建SqlSessionFactory配置如下所示:
然后根据上面代码进行编写工具类,其中部分按照自己的源文件进行命名。
3. 编写代码
3.1 实体类
根据MySQL数据库中包含的变量,分别对每个变量进行构造 (注:快捷键Alt+insert可以快速进行构造无参、有参以及get、set函数)
3.2 Dao接口
新建一个Dao包,创建一个UserDao接口。然后定义一个列表,把所有的用户储存在其中:
public interface UserDao {
List<User> getUserList();
}
3.3 接口实现类
新建一个mapper配置文件,由原来的UserDaoImpl接口实现类转换成Mapper配置文件,其编码格式为:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace空间绑定一个对应的Dao/Mapper接口-->
<mapper namespace="com.kuang.dao.UserDao">
<!-- select查询语句-->
<select id="getUserList" resultType="com.kuang.pojo.User">
select * from mybatis.user
</select>
</mapper>
根据文件修改配置自己的文件:
4. 进行测试
测试主要通过junit运行,其首先需要在pom文件中导入依赖。再在mian同级中新建test.com.kuang.dao包(其主要与main中保持一致),然后新建UserDaoTest类,编写以下代码进行测试:
public class UserDaoTest {
@Test
public void Test(){
//获取sqlSession对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
//方式一:运用Mapper
UserDao mapper = sqlSession.getMapper(UserDao.class);
List<User> userList = mapper.getUserList();
for (User user : userList) {
System.out.println(user);
}
//关闭sqlSession
sqlSession.close();
}
}
其中运行后可能出现如下错误(或者出现未注册的情况):
其主要原因是每一个mapper.xml文件都需要在mybatis核心配置文件中注册,在resource文件夹中的mybatis-config.xml根据main路径中的mapper.xml文件路径修改如下:
在运行则会报如下错误:
然而通过错误我们发现自己文件夹中有,而运行的文件夹中却没有。(惊讶的发现为资源过滤问题——无法对部分文件进行运行)
参考:【狂神说java】Mybatis最新完整教程IDEA版通俗易懂