一:
Mybatis:是一个持久层的框架,之前叫做ibatis。
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。
MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

二:
1.新建一个maven工程
2.配置依赖

<dependencies>
    <!-- 添加MySQL数据库驱动依赖包. -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.30</version>
    </dependency>
    <!-- 添加mybatis依赖 -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.3.0</version>
    </dependency>
    <!--log4j-->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <!--junit-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

3.导入jdbc.properties 和log4j.properties
4.新建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">
<configuration>
    <!-- 加载属性文件 -->
    <properties resource="jdbc.properties"></properties>
    <!-- 和spring整合后 environments配置将废除 -->
    <environments default="development">
        <environment id="development">
            <!-- 使用jdbc事务管理,事务控制由mybatis -->
            <transactionManager type="JDBC" />
            <!-- 数据库连接池,由mybatis管理 -->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            </dataSource>
        </environment>
    </environments>
    <!-- 加载配置文件 -->
    <mappers>
        <mapper resource="xxxxxxxx" />
    </mappers>
</configuration>

5.编写 mapper接口 && mapper.xml(可以理解为mapper.xml是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">
<mapper namespace="接口地址">

</mapper>

6.编写测试类

InputStream cof = Resources.getResourceAsStream("mybatis-config.xml");
// 创建会话工厂
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(cof);
SqlSession sqlSession = sqlSessionFactory.openSession();
XXX mapper = sqlSession.getMapper(XXX.class);

三:
mapper配置文件的三种方式:

<!-- 第一种方式:通过resource指定 -->
<!--<mapper resource="com/dy/dao/userDao.xml" /> -->
<!-- 第二种方式, 通过class指定接口,进而将接口与对应的xml文件形成映射关系 不过,使用这种方式必须保证 接口与mapper文件同名(不区分大小写), 我这儿接口是UserDao,那么意味着mapper文件为UserDao.xml -->
<!-- <mapper class="com.dy.dao.UserDao"/> -->
<!-- 第三种方式,直接指定包,自动扫描,与方法二同理 -->
//常用
<!-- <package name="com.dy.dao"/> -->

四:增删查改

<select id="方法名字" parameterType="参数类型(可忽略)" resultType="返回类型">
    sql
</select>
<delete id="方法名字" parameterType="参数类型(可忽略)">
    sql
</delete>

<update id="方法名字" parameterType="参数类型(可忽略)">
    sql
</update>

<insert id="方法名字" parameterType="参数类型(可忽略)" keyProperty="注入id属性(可忽略)" useGeneratedKeys="true(可忽略)">
     sql
</insert>

五:别名配置

<typeAliases>  
        <!--配置单个-->
        <typeAlias alias="xxx" type="xxx"/> 
        <!--配置多个-->
        <package name="包名"/>          
    </typeAliases>