1.配置maven仓库。
新建一个文件夹存放maven的文件夹以及maven的代码仓库repository,在系统环境变量中新建环境变量MAVEN_HOME 。
2.配置插件、jar包,等。
在IDEA中创建一个Maven项目,可以选择建立模板,或者建立一个新的空项目,在pom.xml中使用标签,写入关键jar包mybatis,junit(测试)并点击刷新。
3.建立基本的三层架构(dao,service,servlet),entity包,并用IDEA自带的database引入实体类,其中servlet可以不写,未涉及到web项目,
在Java目录下建立resources包,写入sqlMapperConfig.xml(后期在所有框架移交spring管理时,可以命名为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>
//可以引入外部文件,此处在db.properties写入了mysql四要素。
<properties resource="db\db.properties"/>
<typeAliases>
// 此处更改包的别名
</typeAliases>
<environments default="ls">
<environment id="ls">
<transactionManager type="JDBC"></transactionManager> //事务管理器标签
<dataSource type="POOLED">
<property name="driver" value="${Drr}"/>
<property name="url" value="${Url}"/>
<property name="username" value="${Acc}"/>
<property name="password" value="${Pwd}"/>
</dataSource>
</environment>
</environments>
<mappers>
//此处写入要交给mybatis管理的mapper文件
<mapper resource="mapper\BookMapper.xml"/>
</mappers>
</configuration>。
4.在dao层写入ApI,在resources包中新建mapper文件夹,并在mapper文件夹中写入mapper的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.softxxx.lis0915.mapper.BookMapper"><mapper>
以上为mapper头文件,其中mapper中的namespace属性需要配置对应的接口地址与接口类名,
在标签内写入sql语句,sql需要指明id与parameterType与resultType
id与接口中的方法名称对应,
parameterType与入参的参数类型对应,如果不需要传参也可以省略,尽量不要省略,便于查找bug,
resultType与返回值对应,结果需要什么,就填写什么类型
5.在test包里新建test类。
首先在test类中首先加载mybatis核心配置文件
通过
resource = Resources.getResourceAsStream("mybatis\\sqlMapConfig.xml");
然后通过构建sqlSessionFactoryBuilder创建工厂对象builder(工厂创建对象)
通过工厂对象创建session对话
SqlSessionFactory factory = builder.build(resource);
SqlSession sqlSession = factory.openSession(true);
其中openSession默认为false,如果需要自动开启事务,可以在内填写true
以上步骤可以进行封装成为一个sqlsession的工具类,如下:
package com.softxxx.lis0915.bookTest;
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 java.io.IOException;
import java.io.InputStream;
public class MySessionUntil {
static SqlSession getSqlSession(){
//加载mybatis核心配置(加载资源),获得一个流对象
InputStream resource=null;
{
try {
resource = Resources.getResourceAsStream("mybatis\\sqlMapConfig.xml");
} catch (IOException e) {
System.out.println("加载mybatis核心文件异常!");
/*e.printStackTrace();*/
}
}
//2.构建sqlSessionFactoryBuilder(工厂创建对象)
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
//3.构建factory对象
SqlSessionFactory factory = builder.build(resource);
//4.构建session(会话对象)
SqlSession sqlSession = factory.openSession();
return sqlSession;
}}
6.这里可以直接使用工具类获取一个会话
SqlSession sqlSession = MySessionUntil.getSqlSession();
通过会话的getMapper方法获取Mapper文件的映射文件
BookMapper mapper = sqlSession.getMapper(BookMapper.class);
然后就可以使用mapper中的方法进行测试了。
小结:
mybatis是一个半自动的ORM框架,主要是对JDBC中的Dao层(持久层)进行了封装,降低了程序的耦合性,
更加利于修改与开发人员的优化,sql语句也完全在xml文件中体现,更加便于修改与查看,
在日常的工作中可以使用mybatis的插件mybatis-generator-逆向工程一键搭建大部分通用的增删改查功能,大大增加了开发人员的工作效率