目录
啥是MyBatis?
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。
简而言之,MyBatis就是用来简化我们web应用操作数据库的持久层框架!
配置MyBatis
在开始之前,我们需要下载MyBatis,将其导入我们的工程中。
如果官网打不开,可以在这里下载。
链接: https://pan.baidu.com/s/1RDnsxMMAdrElWG8rUFdG5g 提取码: 65ik
下载好之后,将mybatis-3.4.2.jar和sqljdbc4.jar导入lib目录下,环境就搭建完毕了。
首先创建一个数据库,同时创建好pojo类,这里不过多阐述,实体类与数据库对应即可。
在src下创建mybatis-config.xml,注意将数据库信息修改为你自己的。
<?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">
<configuration>
<environments default="development">
<environment id="development">
<!-- 使用jdbc的事务管理 -->
<transactionManager type="JDBC"/>
<!-- 连接池 -->
<dataSource type="POOLED">
<property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<property name="url" value="jdbc:sqlserver://127.0.0.1:1433; DatabaseName=mybatis"/>
<property name="username" value="sa"/>
<property name="password" value="000000"/>
</dataSource>
</environment>
</environments>
<!-- 加载映射文件 -->
<mappers>
<mapper resource="com/test/mapper/CustomerMapper.xml"/>
</mappers>
</configuration>
接下来创建映射文件xxxMapper.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="com.test.mapper.CustomerMapper">
<!-- #{}表示占位符 -->
<select id="selectCustomerById" resultType="com.test.po.Customer">
select * from demo where id = #{id}
</select>
<select id="selectAllCustomer" resultType="com.test.po.Customer">
select * from demo
</select>
</mapper>
这里需要注意的是 mybatis-config.xml中的mapper的resource属性表示mapper文件的位置,中间用左斜杠分隔,而mapper文件中的namespace用点来分隔。
编写测试类
这里我们使用junit进行单元测试
package com.test.test;
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.junit.Test;
import com.test.po.Customer;
public class MyBatisTest {
//单元测试
@Test
public void findCustomerByIdTest() throws IOException{
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//创建sqlsession
SqlSession sqlSession = sqlSessionFactory.openSession();
//sqlSession执行文件映射,返回结果
Customer customer = sqlSession.selectOne("com.test.mapper.CustomerMapper.selectCustomerById",1);
System.out.println(customer.toString());
sqlSession.close();
}
}
如果代码没问题的话控制台就会打印查询结果。
常见错误
1.mybatis-config.xml中的mapper的resource属性表示mapper文件的位置,中间用左斜杠分隔,而mapper文件中的namespace用点来分隔。如果弄混就会报错。
2.没有导入jar包导致的错误。
3.Could not find resource xxx.xml
解决办法:右键点击xxx.xml所在的文件夹------>Build Path------>Use as Source Folder。
4.其他错误待补充。