1. 程式人生 > >mybatis基礎入門

mybatis基礎入門

MyBatis概述

1、ORM模型。2、MyBatis概述。3、MyBatis使用優勢及應用場景

ORM模型簡介

  • ORM物件關係對映(Object Relation Mapping)
  • Object:java中的物件
  • Mapping:資料庫中的表
  • Relation:關係對映
    傳統JDBC程式設計缺陷
  • 大量配置資訊硬編碼
  • 大量的無關業務的處理編碼
  • 擴充套件優化極為不便
    MyBatis概述
    Mybatis是支援定製化SQL、儲存過程以及高階對映的永續性框架
  • 避免傳統的JDBC硬編碼
  • XML配置或註解
  • POJO物件和資料庫記錄直接對映
  • 完善的文件支援
    MyBatis的使用優勢
  • 簡單易學,快速上手,學習成本低
  • 資料庫互動資訊配置化
  • 動態SQL處理

MyBatis開發環境搭建

傳統專案中使用MyBatis

  • gethub下載mybatis
  • 專案中匯入jar包

maven方式引入

  • 在依賴查詢網站找到mubatis
  • 配置到pom.xml中

入門程式

  • 開發環境:windows+jdk1.8+IDLE+Mysql

  • 需求:完成一個數據的查詢流程

  • 目的:瞭解mybatis核心API的操作流程

  • 擴充套件:瞭解mubatis的工作流程
    1、建立一個maven專案,不用選archetype,JDK任選吧

    2、填寫groupId,ArifactId

    3、finsh

    4、專案結構
    在這裡插入圖片描述
    main:正式編寫的程式碼
    java:原始碼
    resources:配置檔案
    test:測試程式碼
    pom.xml檔案:maven 專案檔案,配置jar包依賴
    5、配置相應jar包依賴

  • 找到mybatis的jar依賴,和mysql連線的依賴,配置到pom.xml中

<dependencies>
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.41</version>
        </dependency>

    </dependencies>

6、XML配置主配置檔案配置
在main中resources下新建一個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"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mytest"/>
                <property name="username" value="root"/>
                <property name="password" value="110110110"/>
            </dataSource>
        </environment>
    </environments>
    <!--對映配置檔案的路徑-->
    <mappers>
        
    </mappers>
</configuration>

7、建立資料庫

CREATE DATABASE test;

use test;

CREATE TABLE users(
	id int auto_increment PRIMARY KEY COMMENT '使用者編號',
	username VARCHAR(50) COMMENT '這是登入賬號',
	password VARCHAR(50) COMMENT '這是登入密碼',
	nickname VARCHAR(20) COMMENT '使用者暱稱'
);

INSERT into users VALUES(1,'admin','admin','管理員');

8、建立一個與資料表對應的實體類

package club.bagedate.users;

public class user {
    private int id;
    private String username;
    private String password;
    private String nickname;

    public int getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    @Override
    public String toString() {
        return "user{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", nickname='" + nickname + '\'' +
                '}';
    }
}

9、在resources中建立一個mapper資料夾,在資料夾中定義對映關係
建立一個usersMapper.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 名稱空間
    通常情況,名稱空間的值,就是當前操作實體類物件的全名稱
 -->
<mapper namespace="club.bagedate.users.user">
    <select id="userList" resultType="club.bagedate.users.user">
        select * from users
    </select>
</mapper>

將對映關係配置到mabatis.xml中
在mappers中新增對映

10、在test中進行測試
測試之前需要引入junit包在pom.xml中

public class TestDemo {
    @Test
    public void testDemo01() throws IOException {
        //初始化mybatis配置環境
        String resource = "mybatis.xml";
        InputStream is = Resources.getResourceAsStream(resource);
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);


        //開啟和資料庫之間的會話
        SqlSession session = factory.openSession();

        List<user> userList = session.selectList("userList");
        for (user a:userList
             ) {
            System.out.println(a);
        }
        session.close();
    }
}