• 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
    本文版权归作者和博客园共有,转载必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    collections queue、os、datetime,序列化(json和pickle)模块
    re模块和正则
    模块介绍
    迭代器,生成器,生成器表达式,常用内置方法
    交互式shell和非交互式shell的区别
    /usr 的由来及/usr目录结
    Hadoop
    联通、联在中文机器上乱码问题
    正斜杠与反斜杠
    java中static关键字解析
  • 原文地址:https://www.cnblogs.com/binbingg/p/13744250.html
Copyright © 2020-2023  润新知