zoukankan      html  css  js  c++  java
  • MyBatis 环境搭建(四)

    MyBatis 引言

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

    MyBatis环境搭建

    首先,在 Java 工程添加 MyBatis 的依赖 jar 包,并进行导包操作;

    然后,在 Java 工程的根目录下创建 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>
    

    最后,在 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查询操作

    首先,在 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);
    }
    

    接着,在 Java 工程的 mapper 包下创建 UserMapper 映射器接口对应的 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>
    

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

    <configuration>
        <!-- 数据库配置 -->
        <environments default="development">
            ...
        </environments>
    
        <!--配置映射文件路径-->
        <mappers>
            <mapper resource="mappers/UserMapper.xml" />
        </mappers>
    </configuration>
    

    最后,在 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 会话
    作者:Binge
    本文版权归作者和博客园共有,转载必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    JS BOM对象 History对象 Location对象
    JS 字符串对象 数组对象 函数对象 函数作用域
    JS 引入方式 基本数据类型 运算符 控制语句 循环 异常
    Pycharm Html CSS JS 快捷方式创建元素
    CSS 内外边距 float positio属性
    CSS 颜色 字体 背景 文本 边框 列表 display属性
    【Android】RxJava的使用(三)转换——map、flatMap
    【Android】RxJava的使用(二)Action
    【Android】RxJava的使用(一)基本用法
    【Android】Retrofit 2.0 的使用
  • 原文地址:https://www.cnblogs.com/binbingg/p/13744250.html
Copyright © 2011-2022 走看看