1. 程式人生 > 其它 >MyBatis 框架快速入門demo

MyBatis 框架快速入門demo

1.1MyBatis 框架概述:

          mybatis 是一個優秀的基於 java 的持久層框架,它內部封裝了 jdbc,使開發者只需要關注 sql 語句本身, 而不需要花費精力去處理載入驅動、建立連線、建立 statement 等繁雜的過程。 mybatis 通過 xml 或註解的方式將要執行的各種 statement 配置起來,並通過 java 物件和 statement 中 sql 的動態引數進行對映生成最終執行的 sql 語句,最後由 mybatis 框架執行 sql 並將結果對映為 java 物件並 返回。 採用 ORM 思想解決了實體和資料庫對映的問題,對 jdbc 進行了封裝,遮蔽了 jdbc api 底層訪問細節,使我 們不用與 jdbc api 打交道,就可以完成對資料庫的持久化操作。 為了我們能夠更好掌握框架執行的內部過程,並且有更好的體驗,下面我們將從自定義 Mybatis 框架開始來 學習框架。此時我們將會體驗框架從無到有的過程體驗,也能夠很好的綜合前面階段所學的基礎。

直接上乾貨

2.1 建立 maven 工程

      建立 mybatis 的工程,工程資訊如下:

     Groupid:com.itheima

     ArtifactId:mybatis01

     Packing:jar

    (命名還是規範點好,養成習慣)

2.2 在 pom.xml 檔案中新增 Mybatis3.4.5 的座標

   

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.taojunrui</groupId> <artifactId>mybatistjr01</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4
.5</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> <scope>runtime</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.12</version> </dependency> </dependencies> </project>

2.3 編寫 User 實體類

package com.taojunrui.domain;

import java.io.Serializable;
import java.util.Date;

public class User implements Serializable{
    private Integer id;
    private String username;
    private Date birthday;
    private String sex;
    private String address;

    public Integer getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

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

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", birthday=" + birthday +
                ", sex='" + sex + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}

 2.4 編寫持久層介面 UserMapper

package com.taojunrui.dao;

import com.taojunrui.domain.User;

import java.util.List;

public interface UserMapper {

    List<User> findAll();
}

 2.5 編寫持久層介面的對映檔案 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="com.taojunrui.dao.UserMapper">
    <!--配置查詢所有-->
    <select id="findAll" resultType="com.taojunrui.domain.User">
        select * from user
    </select>
</mapper>

2.6 編寫 SqlMapConfig.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">
<!-- mybatis的主配置檔案 -->
<configuration>
    <!-- 配置環境 -->
    <environments default="mysql">
        <!-- 配置mysql的環境-->
        <environment id="mysql">
            <!-- 配置事務的型別-->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置資料來源(連線池) -->
            <dataSource type="POOLED">
                <!-- 配置連線資料庫的4個基本資訊 -->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 指定對映配置檔案的位置,對映配置檔案指的是每個dao獨立的配置檔案 -->
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>

  2.7 編寫測試類

public class MybatisTest {
    public static void main(String[] args)throws Exception {
        //1.讀取配置檔案
        InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
        //2.建立SqlSessionFactory工廠
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);
        //3.使用工廠生產SqlSession物件
        SqlSession session = factory.openSession();
        //4.使用SqlSession建立Dao介面的代理物件
        UserMapper userDao = session.getMapper(UserMapper.class);
        //5.使用代理物件執行方法
        List<User> users = userDao.findAll();
        for(User user : users){
            System.out.println(user);
        }
        //6.釋放資源
        session.close();
        in.close();
    }
}

  3 執行結果

 

(是不是很簡單?趕快試試吧)