Mybatis的入门案例:
开发工具:IDEA
数据库服务器:Mysql 5.1
在过程中也出现了一些问题,经过面向百度和谷歌,终于解决了,得到了查询结果。
下面开始记录一下过程:
首先是整个工程的目录结构:
这个结构中需要说明的是,我将所有的配置文件,都放入了Maven管理下的resources目录,这样也为了防止出现IDEA找不到配置文件。
我的pom.xml:
xml version="1.0" encoding="UTF-8"?>xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 jax.project.spring.jdbc Spring_JDBC 1.0-SNAPSHOT org.mybatis mybatis 3.4.1 junit junit 4.12 test log4j log4j 1.2.17 mysql mysql-connector-java 5.1.38
然后,从第一步开始说起:使用mybatis,我们需要先建立一个全局配置文件,这个文件的命名为:
其中内容为
接下来,就是db.properties中的内容:
这下,应该有了概念,这两个的联系是在哪里,应该就一清二楚了。
SqlMapConfig为全局配置文件,db.properties为数据库配置文件
我的数据表:
可以看到,在我的表中,是有id,userName,birthday,sex,address这些字段的,所以你需要在IDEA中创建实体类,我是放在mybatis.po包中的,名字为。
记得要添加set()和get()方法,以及重写toString().
------------------------------------------------------------------------------------------------------------------------------
现在,我们就可以开始考虑来写接口了:(使用mapper代理的方式)
在mybatis下的mapper包下新建一个接口
然后在接口中写我们要用到的接口方法:
然后,我们要在resources文件下,创建我们的映射文件:
其中内容如下:
----------------------------------------------------------------------------------------------------------------------------------
这里完成之后呢,我们就要完成最后一个配置了,就是在全局配置文件SqlMapConfig.xml文件中去应用我们写的UserMapper.xml文件了,不然,不应用他,那么我们就无法得到结果。
这个标签是放在
到此处,我们的配置工作就全部做完了,最后一步就是测试了,我们要写测试的代码。
----------------------------------------------------------测试部分如下----------------------------------------------------------
import java.io.IOException;
import java.io.InputStream;
import mybatis.mapper.UserMapper;
import mybatis.po.User;
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.junit.Before;
import org.junit.Test;
public class TestC {
private SqlSessionFactory sqlSessionFactory;
@Before
public void SetUp() throws IOException {
//定义resource,这个resource就是全局配置文件的名字,文件是放在resources包下的,
//注意这里的resource和resources包是没啥联系的
String resource = "SqlMapConfig.xml";
//创建输入流,将全局配置文件变为一个输入流
InputStream inputStream = Resources.getResourceAsStream(resource);
//创建sqlSession工厂,通过工厂的build方法
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
@Test
public void findById() throws Exception {
//通过工厂打开session
SqlSession sqlSession = sqlSessionFactory.openSession();
//通过sqlsession来获得映射文件
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
//调用接口中的findUserById方法,输入参数为int类型的,所以这里写id值
User user = userMapper.findUserById(1);
//为了看到效果,我们将这个用户的信息打印出来
System.out.println(user);
}
}
结果的截图为: