MyBatis框架的搭建及配置文件、SQL映射文件的编写

时间:2022-04-12 01:54:56

1、进入下载地址https://github.com/mybatis下载MyBatis架构的文件

2、MyEclipse中创建web项目SMBMS1

3、将以下三个文件复制粘贴到web项目下的WEB-INF下的bin目录下

MyBatis框架的搭建及配置文件、SQL映射文件的编写

4、通过MyEclipse导入刚才拷贝到工程里面三个包

选中项目名称后右键,选中Build Path,右键,选中Configuer Build Path,选择add JARS,项目下选中WEB-INF下的bin目录下文件后OK,这样就在工程里面加入了以上jar文件

5、为了方便学习,将mybatis-3.2.2.jar中的源文件导入

选中Referenced Library下面的mybatis-3.2.2.jar右键,选中properties,选中java source attachment,文件如果在workspase下,可以选择workspase location,不在则选择external location,如果文件解压了就选择external folder,没有解压就选择external file

6、相关配置文件的配置

在项目下面新建source folder(为什么建source folder,因为只有他才能被编译),目录下数据库配置文件复制进来,另外新建一个file文件名字为mybatis-config.xml,再将log4j.properties文件引入

打开mybatis-config.xml进行配置

将mybatis手册中的如下代码复制粘贴进来做为文件头

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">

引入配置文件头之后进行以下配置

<!-- 通过这个配置文件完成mybatis与数据库的连接 -->

<configuration>

<!-- 引入 database.properties 文件-->

<properties resource="database.properties"/>

<!-- 配置mybatis的log实现为LOG4J -->

<settings>

<setting name="logImpl" value="LOG4J" />

</settings>

<environments default="development">

<environment id="development">

<!--配置事务管理,采用JDBC的事务管理  -->

<transactionManager type="JDBC"></transactionManager>

<!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 -->

<dataSource type="POOLED">

<property name="driver" value="${driver}"/>

<property name="url" value="${url}"/>

<property name="username" value="${user}"/>

<property name="password" value="${password}"/>

</dataSource>

</environment>

</environments>

<!-- 将mapper文件加入到配置文件中 -->

<mappers>

<mapper resource="cn/smbms/dao/user/UserMapper.xml"/>

</mappers>

</configuration>

在添加配置文件的时候,每一种文件的配置代码有前后顺序的要求,可以进入design窗口,选中configuration右键add child选择对应的需要加入的配置文件标签名

6、在src下面建立两个包cn.smbms.pojo和cn.smbms.dao.user,在cn.smbms.pojo包下面建立User类,在cn.smbms.dao.user下建立UserMapper.xml,打开UserMapper.xml配置从手册中复制粘贴文件头代码

<?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">

然后进行配置以下代码

<mapper namespace="cn.smbms.dao.user.UserMapper">

<!-- 查询用户表记录数 -->

<select id="count" resultType="int">

select count(1) as count from smbms_user

</select>

</mapper>

在进行配置文件的时候为了保证代码正确,最好能有自动提示,可以引入对应配置文件的dtd文件,如引入mapper.dtd文件,首先找到这个文件,这个文件在mybatis-3.2.2.jar里面,将mybatis-3.2.2.jar解压后,找到mybatis-3.2.2—org—apache—ibatis—builder—xml里面有对应的文件mybatis-3-mapper.dtd,将头文件中的-//mybatis.org//DTD Mapper 3.0//EN复制,进入MyEclipse选择window—preferences,输入xml搜索,选择xml catalog,再选择user specified entries,选择location下的file system,选中mybatis-3-mapper.dtd确定,在key处输入-//mybatis.org//DTD Mapper 3.0//EN,OK

7、创建测试类

工程里面加入JUnit4,首先工程下建立source folder名为test,选中项目名—new—other—输入ju搜索—junit test case,在package下输入cn.smbms.dao.user,在Name下输入UserMapperTest,finish—选中junit4—OK

在UserMapperTest中输入以下代码

package cn.smbms.dao.user;

import static org.junit.Assert.*;

import java.io.IOException;

import java.io.InputStream;

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import org.apache.log4j.Logger;

import org.junit.Before;

import org.junit.Test;

public class UserMapperTest {

private Logger logger = Logger.getLogger(UserMapperTest.class);

@Before

public void setUp() throws Exception {

}

@Test

public void test() {

String resource = "mybatis-config.xml";

int count = 0;

SqlSession sqlSession = null;

try {

//1 获取mybatis-config.xml的输入流

InputStream is = Resources.getResourceAsStream(resource);

//2 创建SqlSessionFactory对象,完成对配置文件的读取

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);

//3 创建sqlSession

sqlSession = factory.openSession();

//4 调用mapper文件来对数据进行操作,必须先把mapper文件引入到mybatis-config.xml中

count = sqlSession.selectOne("cn.smbms.dao.user.UserMapper.count");

logger.debug("UserMapperTest count---> " count);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

sqlSession.close();

}

}

}

完成后,右键Run as—JUnit test,然后在consol中查看结果

[DEBUG] 2019-10-06 12:05:56,860 cn.smbms.dao.user.UserMapperTest - UserMapperTest count---> 12