Mybatis入門學(xué)習(xí)筆記

1.介紹

  • 開發(fā)環(huán)境:

    • eclipse
    • Mysql 5.7.29
  • jar包

    • mybatis-3.5.4.jar

    • mysql-connector-java-8.0.15.jar

1.1什么是Mybatis

[官網(wǎng)簡介][https://mybatis.org/mybatis-3/zh/index.html]

MyBatis 是一款優(yōu)秀的持久層框架,它支持自定義 SQL、存儲過程以及高級映射。

MyBatis 免除了幾乎所有的 JDBC 代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作。

什么是框架:

比如:一張報(bào)名表,因?yàn)橛辛藯l條框框,所以你只需要在對應(yīng)的地方填你的個人信息可以了。

? 假如沒有了框架,給你一張白紙,讓你填寫報(bào)名,這肯定是不方便的。

1.2為什么要用Mybatis

  • 簡單易學(xué)使用人多,方便
  • 傳統(tǒng)的JDBC代碼太復(fù)雜了
  • sql和代碼分離
  • 等等

2.導(dǎo)入jar包

2.1 下載mybatis-×.×.×.jar包

下載過后是一個.zip的壓縮包,解壓文件,里面會有一個mybatis-×.×.×.jar的文件,

將該文件復(fù)制到項(xiàng)目中的WEB-INF/lib文件下

同時將連接mysql需要的jar包也放到同文件下


效果:

3.入門程序查詢用戶信息

3.1配置mybatis-config.xml

配置mybatis核心文件mybatis-config.xml

在項(xiàng)目中新建源文件夾,用于存放配置文件

這個文件可以實(shí)現(xiàn)數(shù)據(jù)庫的連接

為什么一定要新建源文件夾,而不能選擇在包里創(chuàng)建呢?

請移步:
Eclipse實(shí)現(xiàn)Mybatis出現(xiàn)java.io.IOException: Could not find resource XXX.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.cj.jdbc.Driver"/><!--driver-->
        <property name="url" value="jdbc:mysql://localhost:3306/mybatis01?serverTimezone=UTC"/>
        <property name="username" value="root"/><!--名字-->
        <property name="password" value="521314"/><!--密碼-->
      </dataSource>
    </environment>
  </environments>
    
    <!--mappers-mapper 標(biāo)簽,在3.4之后在進(jìn)行配置-->
   <mappers> 
    <mapper resource="UserMapper.xml"/>
  </mappers>
    
</configuration>

注意:

  • 如果是低版本8 以下的mysql代碼如下,這個跟jdbc是一樣的

    <property name="driver" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/mybatis01"/>
    
  • 關(guān)于mappers元素官方話:

    mappers 元素則包含了一組映射器(mapper),這些映射器的 XML 映射文件包含了 SQL 代碼和映射定義信息。

3.2創(chuàng)建user,對應(yīng)數(shù)據(jù)庫一條記錄

package mapper;

public class User {
    private int id;
    private String name;
    private String password;
    private String tel;
    
    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", password=" + password + ", tel=" + tel + "]";
    }
    //以下還有g(shù)et,set方法,篇幅問題在此省略
   
}

3.3定義接口和查詢?nèi)坑脩舻姆椒ǎ?/h2>
import java.util.List;

public interface UserMapper {
    List<User> getUserlist();//查詢所有用戶
}

3.4 配置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">
<mapper namespace="UserMapper"> <!--空間名對應(yīng)接口名-->
  <select id="selectBlog" resultType="User"> <!--id對應(yīng)接口中的抽象方法,resultType 返回值類型-->
    select * from user              <!--這是一個查詢語句,查詢user表-->
  </select>
</mapper>

配置完之后:

回到3.1,在配置文件mybatis-config.xml中加入mappers標(biāo)簽并配置

3.5從 SqlSessionFactory 中獲取 SqlSession

創(chuàng)建在utils包下創(chuàng)建mybatisUtils類

讀取mybatis-config.xml配置信息連接數(shù)據(jù)庫

package utils;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MybatisUtils {

        static SqlSessionFactory sqlSessionFactory;
    
    static {
        //配置文件所在地址
        String resource = "mybatis-config.xml";
    
        try {
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    
    }
    public static SqlSession getsqlSession() {
        //通過sqlSession工廠類獲取sqlSession對象
        return sqlSessionFactory.openSession();
    }

}

4 編寫測試方法

import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import mapper.User;
import mapper.UserMapper;
import utils.MybatisUtils;

public class TestMapper {
    @Test
    public void test() {
        //獲取sqlSession
        SqlSession sqlSession = MybatisUtils.getsqlSession();
       
        UserMapper mapper= sqlSession.getMapper(UserMapper.class);
        
        List<User> userlist=mapper.getUserlist();
        for(User user:userlist) {
            System.out.println(user);
        }
        
        
        sqlSession.close();
    }

    
}

5.舉例異常

可能出現(xiàn)的異常:

  • java.io.IOException: Could not find resource XXX.xml -解決方法
  • org.apache.ibatis.exceptions.PersistenceException -解決方法

6.項(xiàng)目文件圖

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容