MyBatis快速入门

在回顾JDBC时,我们已经创建有Maven工程,而且在pom.xml中也已经导入 mysql 依赖包,这里就直接在原有工程上搭建MyBatis环境,以及使用MyBatis来实现JDBC查询user的操作流程。

MyBatis环境搭建

首先,在 Maven 项目的 pom.xml 中添加 MyBatis 的依赖 jar 包

<!--导入 mybatis 依赖包-->
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.2.8</version>
</dependency>          

注:如果对 Maven 搞不清楚的同学,可以看我写的关于 Maven 使用教程的博客文章。

然后,在Maven工程的 resources 目录下创建 MyBatis 环境配置文件 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.mysql.jdbc.Driver"/>
                <!--设置数据库url地址-->
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                <!--设置数据库用户名-->
                <property name="username" value="填写数据库的用户名"/>
                <!--设置数据库密码-->
                <property name="password" value="填写数据库密码"/>
            </dataSource>
        </environment>
    </environments>

</configuration>

最后,在Maven工程的main/java下创建MyBatisDemo.java文件,用于测试MyBatis环境是否搭建OK

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;
import java.util.List;

/**
 * @desc MyBatis测试
 * @date 2020/6/18 上午11:34
 */
public class MyBatisDemo {
    public static void main(String[] args) throws Exception {
        // 指定mybatis环境配置文件
        String resource = "mybatis-config.xml";
        // 读取配置文件
        InputStream inputStream = Resources.getResourceAsStream(resource);

        // 构建sqlSessionFactory
        SqlSessionFactory sqlSessionFactory
                = new SqlSessionFactoryBuilder().build(inputStream);

        // 获取sqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
      
      	System.out.println("MyBatis 环境搭建 OK ");
    }

执行MyBatisDeme后结果如下:

注意:如果运行出现异常错误,那么可能是 jar 包导入有问题,或者 mybatis-config.xml 编写有语法错误,相信认真核查一下就可以解决。

MyBatis查询操作

首先,在 Maven 工程的main/java/mapper下创建 UserMapper.java 文件,该文件是user的映射器接口,如下:

package mapper;
import entity.UserEntity;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @desc User映射器接口
 * @date 2020/6/19 上午8:59
 */
public interface UserMapper {
    /**
     * 根据年龄查询用户信息
     * @param age 年龄
     * @return user 用户实体集合
     */
    public List<UserEntity> selectUserByAge(int age);
}

接着,在 Maven 工程的 resources/mappers下创建 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">

<!-- namespace表示命名空间,填写之前创建的 UserMapp.java 接口包路径 -->
<mapper namespace="mapper.UserMapper">
    <!--结果集映射-->
    <resultMap id="userResultMap" type="entity.UserEntity">
      	<!-- propery表示UserEntity属性名 column表示tb_user表的字段名-->
        <id property="id" column="id" />
        <result property="userName" column="userName" />
        <result property="password" column="password" />
        <result property="name" column="name" />
        <result property="age" column="age" />
        <result property="sex" column="sex" />
        <result property="birthday" column="birthday" />
        <result property="created" column="created" />
        <result property="updated" column="updated" />
    </resultMap>

    <!--select查询语句-->
    <select id="selectUserByAge" resultMap="userResultMap">
        select * from tb_user where age > #{age}
    </select>
</mapper>

然后,在 Maven 工程的 resources/mybatis-config.xml 配置文件中添加 UserMapper.xml 映射文件的路径,如下:

<configuration>
    <!-- 数据库配置 -->
    <environments default="development">
        ...
    </environments>

    <!--配置映射文件路径-->
    <mappers>
        <mapper resource="mappers/UserMapper.xml" />
    </mappers>
</configuration>

最后,在 Maven 工程的 main/java/MyBatisDemo.java 文件中添加代码执行查询操作,如下:

import entity.UserEntity;
import mapper.UserMapper;
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;
import java.util.List;

/**
 * @author benjamin.xu
 * @desc MyBatis测试
 * @date 2020/6/18 上午11:34
 */
public class MyBatisDemo {
    public static void main(String[] args) throws Exception {
        // 指定mybatis环境配置文件
        String resource = "mybatis-config.xml";
        // 读取配置文件
        InputStream inputStream = Resources.getResourceAsStream(resource);

        // 构建sqlSessionFactory
        SqlSessionFactory sqlSessionFactory
                = new SqlSessionFactoryBuilder().build(inputStream);

        // 获取sqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();

        // 获取UserMapper对象
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

        // 执行查询操作
        List<UserEntity> userEntities = userMapper.selectUserByAge(20);

        System.out.println(userEntities);

        //关闭sqlSession
        sqlSession.close();
    }
}

执行 MyBatisDemo 结果如下:

[entity.UserEntity{id=1, userName='zs', password='123456', name='张三', age=22, sex=1, birthday=Sun Sep 02 00:00:00 IRKST 1990, created='2020-06-17 09:30:58.0', updated='2020-06-17 09:30:58.0'}, entity.UserEntity{id=2, userName='ls', password='123456', name='李四', age=24, sex=1, birthday=Sun Sep 05 00:00:00 IRKST 1993, created='2020-06-17 09:30:58.0', updated='2020-06-17 09:30:58.0'}]

Process finished with exit code 0

以下是整个工程的目录结构:

MyBatis操作步骤总结

通过上述操作,我们可以总结出 MyBatis 的操作步骤如下:

  1. 创建 UserMapper.java 映射器接口
  2. 创建 UserMapper.xml 映射文件
  3. 在 mybatis-config.xml 环境配置文件中添加 UserMapper.xml 映射文件路径
  4. 在 MyBatisDemo中编写MyBatis测试代码
    • 加载 mybatis-config.xml MyBatis环境配置文件
    • 创建 SqlSessionFactory 工厂对象
    • 通过 SqlSessionFactory 工厂创建 SqlSession 对象
    • 通过 SqlSession 创建 UserMapper接口对象
    • 调用 UserMapper 接口方法执行查询操作
    • 调用SqlSession.commit()提交事务(查询不需要)
    • 关闭 SqlSession 会话
posted @ 2021-09-23 20:51  追こするれい的人  阅读(47)  评论(0编辑  收藏  举报