日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

MyBatis快速入門(mén)案例

作者:W-琑 更新時(shí)間: 2024-03-07 編程語(yǔ)言

目錄

1.準(zhǔn)備數(shù)據(jù)庫(kù)

2.創(chuàng)建項(xiàng)目,導(dǎo)入依賴

3.創(chuàng)建實(shí)體類

4.創(chuàng)建Mapper接口和Mapper.xml文件

5.MyBatis配置文件-通常命名為mybatis-config.xml

6.測(cè)試


1.準(zhǔn)備數(shù)據(jù)庫(kù)

CREATE DATABASE `mybatis-example`;

USE `mybatis-example`;

CREATE TABLE `t_emp`(
  emp_id INT AUTO_INCREMENT,
  emp_name CHAR(100),
  emp_salary DOUBLE(10,5),
  PRIMARY KEY(emp_id)
);

INSERT INTO `t_emp`(emp_name,emp_salary) VALUES("tom",200.33);
INSERT INTO `t_emp`(emp_name,emp_salary) VALUES("jerry",666.66);
INSERT INTO `t_emp`(emp_name,emp_salary) VALUES("andy",777.77);

2.創(chuàng)建項(xiàng)目,導(dǎo)入依賴

創(chuàng)建項(xiàng)目

導(dǎo)入依賴到pom.xml

<dependencies>
  <!-- mybatis依賴 -->
  <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.11</version>
  </dependency>

  <!-- MySQL驅(qū)動(dòng) mybatis底層依賴jdbc驅(qū)動(dòng)實(shí)現(xiàn),本次不需要導(dǎo)入連接池,mybatis自帶! -->
  <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.25</version>
  </dependency>

  <!--junit5測(cè)試-->
  <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-api</artifactId>
      <version>5.3.1</version>
  </dependency>
</dependencies>

3.創(chuàng)建實(shí)體類

public class Employee {

    private Integer empId;

    private String empName;

    private Double empSalary;
    
    //getter | setter
}

4.創(chuàng)建Mapper接口和Mapper.xml文件

Mybatis 中的 Mapper 接口相當(dāng)于以前的 Dao。但是區(qū)別在于,Mapper 僅僅只是建接口即可,我們不需要提供實(shí)現(xiàn)類,具體的SQL寫(xiě)到對(duì)應(yīng)的Mapper文件,該用法的思路如下圖所示:

a.定義mapper接口

package com.atguigu.mapper;

import com.atguigu.pojo.Employee;

/**
 * t_emp表對(duì)應(yīng)數(shù)據(jù)庫(kù)SQL語(yǔ)句映射接口!
 *    接口只規(guī)定方法,參數(shù)和返回值!
 *    mapper.xml中編寫(xiě)具體SQL語(yǔ)句!
 */
public interface EmployeeMapper {

    /**
     * 根據(jù)員工id查詢員工數(shù)據(jù)方法
     * @param empId  員工id
     * @return 員工實(shí)體對(duì)象
     */
    Employee selectEmployee(Integer empId);
    
}

b.定義mapper.xml文件

位置:resources/mappers/EmployeeMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace等于mapper接口類的全限定名,這樣實(shí)現(xiàn)對(duì)應(yīng) -->
<mapper namespace="com.atguigu.mapper.EmployeeMapper">
    
    <!-- 查詢使用 select標(biāo)簽
            id = 方法名
            resultType = 返回值類型
            標(biāo)簽內(nèi)編寫(xiě)SQL語(yǔ)句
     -->
    <select id="selectEmployee" resultType="com.atguigu.pojo.Employee">
        <!-- #{empId}代表動(dòng)態(tài)傳入的參數(shù),并且進(jìn)行賦值!后面詳細(xì)講解 -->
        select emp_id empId,emp_name empName, emp_salary empSalary from 
           t_emp where emp_id = #{empId}
    </select>
</mapper>

注意:

  • 方法名和SQL的id一致
  • 方法返回值和resultType一致
  • 方法的參數(shù)和SQL的參數(shù)一致
  • 接口的全類名和映射配置文件的名稱空間一致

5.MyBatis配置文件-通常命名為mybatis-config.xml

mybatis框架配置文件: 數(shù)據(jù)庫(kù)連接信息,性能配置,mapper.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表示配置Mybatis的開(kāi)發(fā)環(huán)境,可以配置多個(gè)環(huán)境,在眾多具體環(huán)境中,使用default屬性指定實(shí)際運(yùn)行時(shí)使用的環(huán)境。default屬性的取值是environment標(biāo)簽的id屬性的值。 -->
  <environments default="development">
    <!-- environment表示配置Mybatis的一個(gè)具體的環(huán)境 -->
    <environment id="development">
      <!-- Mybatis的內(nèi)置的事務(wù)管理器 -->
      <transactionManager type="JDBC"/>
      <!-- 配置數(shù)據(jù)源 -->
      <dataSource type="POOLED">
        <!-- 建立數(shù)據(jù)庫(kù)連接的具體信息 -->
        <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mybatis-example"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
      </dataSource>
    </environment>
  </environments>

  <mappers>
    <!-- Mapper注冊(cè):指定Mybatis映射文件的具體位置 -->
    <!-- mapper標(biāo)簽:配置一個(gè)具體的Mapper映射文件 -->
    <!-- resource屬性:指定Mapper映射文件的實(shí)際存儲(chǔ)位置,這里需要使用一個(gè)以類路徑根目錄為基準(zhǔn)的相對(duì)路徑 -->
    <!--    對(duì)Maven工程的目錄結(jié)構(gòu)來(lái)說(shuō),resources目錄下的內(nèi)容會(huì)直接放入類路徑,所以這里我們可以以resources目錄為基準(zhǔn) -->
    <mapper resource="mappers/EmployeeMapper.xml"/>
  </mappers>

</configuration>

6.測(cè)試

/**
 * projectName: com.atguigu.test
 *
 * description: 測(cè)試類
 */
public class MyBatisTest {

    @Test
    public void testSelectEmployee() throws IOException {

        // 1.創(chuàng)建SqlSessionFactory對(duì)象
        // ①聲明Mybatis全局配置文件的路徑
        String mybatisConfigFilePath = "mybatis-config.xml";

        // ②以輸入流的形式加載Mybatis配置文件
        InputStream inputStream = Resources.getResourceAsStream(mybatisConfigFilePath);

        // ③基于讀取Mybatis配置文件的輸入流創(chuàng)建SqlSessionFactory對(duì)象
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        // 2.使用SqlSessionFactory對(duì)象開(kāi)啟一個(gè)會(huì)話
        SqlSession session = sessionFactory.openSession();

        // 3.根據(jù)EmployeeMapper接口的Class對(duì)象獲取Mapper接口類型的對(duì)象(動(dòng)態(tài)代理技術(shù))
        EmployeeMapper employeeMapper = session.getMapper(EmployeeMapper.class);

        // 4. 調(diào)用代理類方法既可以觸發(fā)對(duì)應(yīng)的SQL語(yǔ)句
        Employee employee = employeeMapper.selectEmployee(1);

        System.out.println("employee = " + employee);

        // 4.關(guān)閉SqlSession
        session.commit(); //提交事務(wù) [DQL不需要,其他需要]
        session.close(); //關(guān)閉會(huì)話

    }
}

原文鏈接:https://blog.csdn.net/weixin_69134926/article/details/136479170

  • 上一篇:沒(méi)有了
  • 下一篇:沒(méi)有了
欄目分類
最近更新