【MyBatis】(1)简单使用

【MyBatis】(1)简单使用

前言

该文章只是个人笔记总结,详细学习请访问底部MyBatis官方文档。使用的开发工具为IDEA.

一、介绍

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录

MyBatis 底层封装了 JDBC。

二、安装

1.下载jar导入

下载jar导入:https://github.com/mybatis/mybatis-3/releases

下载的文件解释:

image

2.使用maven

这里我使用maven进行导入

使用maven导入:

    <dependencies>
        <!-- mybatis核心包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.4</version>
        </dependency>
        <!-- mysql驱动包,一会需要用到 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.29</version>
        </dependency>
    </dependencies>

三、MyBatis配置文件

每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例。

1.使用 xml 配置

XML 配置文件中包含了对 MyBatis 系统的核心设置,包括获取数据库连接实例的数据源(DataSource)以及决定事务作用域和控制方式的事务管理器(TransactionManager)。

在resourses目录下创建mybatis-config.xml文件(MyBatis的配置文件),进行如下配置。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">
            <!-- 事务管理器 -->
            <transactionManager type="JDBC"/>
            <!-- 获取数据库连接实例的数据源 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/demo"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 映射器 -->
    <mappers>
        <!--加载映射文件-->
        <mapper resource="mapper/UserMapper.xml"></mapper>
        <!--加载接口-->
        <!-- <mapper class="mapper.UserMapper"></mapper>-->
        <!--加载地址-->
        <!--<mapper url="D://UserMapper.xml"></mapper>-->
        <!--加载接口所在的包-->
        <!--<package name="com.shengjava.mapper"></package>-->
    </mappers>
</configuration>

2.使用 Java 代码配置

请查看官方文档 “入门” 中的 “不使用 XML 构建 SqlSessionFactory”。

四、简单使用

在上面的 mybatis-config.xml 配置文件中的数据库demo中,已经创建好了user表,且仅有两个字段。

项目结构如下:

image

1.创建接口

package com.shengjava.mapper;

import com.shengjava.pojo.User;

public interface UserMapper {
    User selectUser(int id);
}

2.创建实体类

package com.shengjava.pojo;

/**
 * @author ChangSheng
 * @date 2020-03-19
 */
public class User {
    private int id;
    private String name;

    public User() {
    }

    public User(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}

3.创建xml映射文件

放到resourses/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="com.shengjava.mapper.UserMapper">
    <select id="selectUser" resultType="com.shengjava.pojo.User" >
      select * from User where id = #{id}
    </select>
</mapper>

4.测试类

从 XML 文件中构建 SqlSessionFactory 的实例非常简单,建议使用类路径下的资源文件进行配置。 但也可以使用任意的输入流(InputStream)实例,比如用文件路径字符串或 file:// URL 构造的输入流。MyBatis 包含一个名叫 Resources 的工具类,它包含一些实用方法,使得从类路径或其它位置加载资源文件更加容易。

备注:在旧版本的 MyBatis 中,可以使用其他方式"从 SqlSessionFactory 中获取 SqlSession"。这里这里使用简单一点的方式。

import com.shengjava.mapper.UserMapper;
import com.shengjava.pojo.User;
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;

/**
 * @author ChangSheng
 * @date 2020-03-19
 */
public class MyBatisTest {
    public static void main(String[] args) throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        // 从 SqlSessionFactory 中获取 SqlSession
        try (SqlSession session = sqlSessionFactory.openSession()) {
            UserMapper mapper = session.getMapper(UserMapper.class);
            User user = mapper.selectUser(1);
            System.out.println(user);
        }

    }
}

至此,mybatis已可以成功运行。

参考

MyBatis官方文档(中文):https://mybatis.org/mybatis-3/zh/getting-started.html

使用IDEA Maven搭建mybatis环境:https://www.cnblogs.com/wvae/p/9607684.html