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 会话

MyBatis 环境搭建(四)的更多相关文章

  1. MyBatis -01- 初识 MyBatis + MyBatis 环境搭建

    MyBatis -01- 初识 MyBatis + MyBatis 环境搭建 MyBatis 本是 apache 的一个开源项目 iBatis(iBATIS = "internet" ...

  2. Mybatis环境搭建及测试

    1.新建java project,导入相应jar包 本次使用到的mybatis-3.2.7版本 mybatis需要jar包:mybatis-3.2.7.jar.lib文件下的依赖jar mysql驱动 ...

  3. springmvc+mybatis环境搭建

    1.spring+mybatis 环境搭建: A.配置jdbc和dbcp数据源:注意版本com.mysql.cj.jdbc.Driver B.配置sessionfactory,绑定dbcp及配置map ...

  4. odoo开发环境搭建(四):python开发工具IDE pycharm配置

    odoo开发环境搭建(四):python开发工具IDE pycharm配置

  5. MyBatis之MyBatis环境搭建

    MyBatis之MyBatis环境搭建 一.MyBatis开发环境搭建 1.引入Jar包 ①MyBatis mybatis-3.4.1.jar ant-1.9.6.jar ant-launcher-1 ...

  6. Mybatis环境搭建中的案例分析 及 如果自己编写DAO接口的实现类

    Mybatis环境搭建中的案例分析public static void main (String[] args) throws Exception { //读配置文件 //第一个: 使用类加载器,只能 ...

  7. mybatis环境搭建和开发步骤

    环境搭建 第一步:导入jar包 第二步:导入核心配置文件(mybatis-config.xml) <?xml version="1.0" encoding="UTF ...

  8. MyBatis 环境搭建 (一)

    一.MyBatis简介 MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis 使用简 ...

  9. Spring日记_02之 json、javaBean、.do、MySql、MyBatis 环境搭建结束

    JSON Json是JavaScript直接量语法 无参构造方法直接 Alt + \ 就可以提示添加 Project – Clean 浏览器向服务器发送请求,服务器中的Spring中的SpringMV ...

随机推荐

  1. 周爱民带你深入剖析JavaScript核心原理

    作为前端工程师必备技能,JavaScript 的重要性不言而喻.虽然易上手,但却有着诸多复杂微妙的机制,想要真正掌握绝非易事. 专栏面向JavaScript语言的实际应用者与深度爱好者,以讲述Java ...

  2. C/C++中的const

    1 C中的const C中const修饰的变量是只读变量,在使用const关键字声明定义变量时会给该变量分配内存空间. const修饰的全局变量默认是外部链接的,即其它源文件可以直接使用该变量. co ...

  3. Spring (二)SpringIoC和DI注解开发

    1.Spring配置数据源 1.1 数据源(连接池)的作用 数据源(连接池)是提高程序性能出现的 事先实例化数据源,初始化部分连接资源 使用连接资源时从数据源中获取 使用完毕后将连接资源归还给数据源 ...

  4. Spring Boot demo系列(六):HTTPS

    2021.2.24 更新 1 概述 本文演示了如何给Spring Boot应用加上HTTPS的过程. 2 证书 虽然证书能自己生成,使用JDK自带的keytool即可,但是生产环境是不可能使用自己生成 ...

  5. (十九)VMware Harbor 详细介绍

    一 . 简介 Harbor是VMware公司开源的企业级DockerRegistry项目,项目地址为https://github.com/vmware/harbor.其目标是帮助用户迅速搭建一个企业级 ...

  6. 浅入Kubernetes(11):了解 Service 和 Endpoint

    目录 Srevice Service 的创建及现象 Service 定义 Endpoint slices 创建 Endpoint.Service Service 创建应用 创建 Endpoint 浅入 ...

  7. C#入门到精通系列课程——第3章变量及运算符

    ◆本章内容 (1)变量是什么 (2)变量的声明及初始化 (3)常量 (4)运算符 (5)数据类型转换 (6)运算符优先级及结合性 (7)难点解答 ◆本章简述 很多人认为学习C#之前必须要学习C++,其 ...

  8. 【C#】一个Loading窗体载入与销毁的方法

    写在前面 Minecraft Command Editor 2跳票了近两年的时间(对不起!!).2021年2月,我重启了MCE项目,并正式命名为Minecraft Command Editor 202 ...

  9. 趁五一撸个纯Flutter版的心情日记App

    前言 最近真的是太忙了,只能趁着五一期间把之前Android版的心情日记App移植到Flutter平台,并且已经上架华为应用市场以及苹果App Store. 整体框架沿用了两个星期,用Flutter撸 ...

  10. 【Springboot项目启动异常】项目启动,数据库连接异常

    今天使用Springboot 整合 MybatisPlus 准备写一个Demo,在项目启动时,频繁出错,在此记录整个问题的解决过程 问题如下图 人工翻译一遍,主要意思就是没有检测到数据库驱动,也就是说 ...