【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

源碼

鏈接:https://pan.baidu.com/s/1TRDTrJoqQYj6iXsalxGcfg
提取碼:1noy

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章