Mybatis環境搭建與測試

Mybatis簡介

1.什麼是Mybatis

MyBatis 是一款優秀的持久層框架,它支持定製化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎全部的 JDBC 代碼和手動設置參數以及獲取結果集。使開發者只須要關注SQL自己,而不須要花費精力去處理例如註冊驅動、建立connection、建立statement、手動設置參數、結果集檢索等jdbc繁雜的過程代碼。java

準備工做

建立db_mybatis庫,emp表,插入若干記錄mysql

-- 一、建立數據庫 db_mybatis 數據庫
create database if not exists db_mybatis charset utf8;
use db_mybatis; -- 選擇db_mybatis數據庫
-- 二、刪除emp表(若是存在)
drop table if exists emp;
-- 三、在 db_mybatis 庫中建立 emp 表
create table emp(
    id int primary key auto_increment,
    name varchar(50),
    job varchar(50),
    salary double
);
-- 四、往 emp 表中, 插入若干條記錄
insert into emp values(null, '李四', '程序員', 3300);
insert into emp values(null, '王五', '程序員', 2800);
insert into emp values(null, '小花', '程序員鼓勵師', 2700);
insert into emp values(null, '趙六', '部門總監', 4200);
insert into emp values(null, '小明', '程序員', 3000);

1.建立工程

1.1 建立一個Maven的web工程

Maven簡單工程.jpg
MavenProject.jpg

1.2 生成web.xml

生成web.xml文件.jpg

1.3 建立配置文件

在src/main/resources下面:程序員

建立mybatis/mybatis-config.xml
建立mapper/mapper.xml

建立配置文件.jpg

1.4 項目建立和結構展現

工程結構.jpg

2.添加依賴和配置文件

2.1 給pom.xml文件添加依賴

<dependencies>
    <!-- junit單元測試 -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.10</version>
    </dependency>
    <!-- mysql驅動 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.32</version>
    </dependency>
    <!-- mybatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.2.8</version>
    </dependency>
</dependencies>

Maven依賴.jpg

2.2 添加配置文件內容

給mybatis-config.xml文件添加以下內容:web

<?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 >
    <!-- 1.配置環境,可配置多個環境(好比:develop開發、test測試) -->
    <environments default="develop">
        <environment id="develop">
            
            <!-- 1.1.配置事務管理方式:JDBC/MANAGED
            JDBC:將事務交給JDBC管理(推薦)
            MANAGED:本身管理事務
              -->
            <transactionManager type="JDBC"></transactionManager>
            
            <!-- 1.2.配置數據源,即鏈接池 JNDI/POOLED/UNPOOLED
                JNDI:已過期
                POOLED:使用鏈接池(推薦)
                UNPOOLED:不使用鏈接池
             -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/db_mybatis?characterEncoding=utf-8"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    
    <!-- 2.導入Mapper配置文件,若是mapper文件有多個,能夠經過多個mapper標籤導入 -->
    <mappers>
        <mapper resource="/mapper.xml"/>
    </mappers>
</configuration>

給mapper.xml文件添加以下內容:sql

<?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值應該保證惟一
    在程序中經過[ namespace + id ]定位到要執行哪一條SQL語句
 -->
<mapper namespace="EmpMapper">
    <!-- 經過select、insert、update、delete標籤聲明要執行的SQL -->
    <select id="findAll" resultType="com.yanan.pojo.User">
        select * from emp
    </select>
</mapper>

3.代碼實現

3.1編寫User實體類

注意:該實體類中的屬性名必須和數據庫中的字段名一致,不然沒法封裝進去。
建立User實體類,並提供get、set和重寫toString()方法:數據庫

package com.yanan.pojo;

/**
 * 實體類
 * @author 慕客
 *
 */
public class User {
    //1.聲明實體類中的屬性
    private Integer id;
    private String name;
    private String job;
    private Double salary;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getJob() {
        return job;
    }
    public void setJob(String job) {
        this.job = job;
    }
    public Double getSalary() {
        return salary;
    }
    public void setSalary(Double salary) {
        this.salary = salary;
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", job=" + job + ", salary=" + salary + "]";
    }
}

3.2 編寫實現類(MapperDaoTest)

編寫findAll()方法:session

/**
 *  查詢全部用戶信息,返回一個List<User>
 * @throws IOException
 */
@Test
public void findAll() throws IOException {
    //1.讀取mybatis的核心配置文件(mybatis-config.xml)
    InputStream in = Resources
            .getResourceAsStream("mybatis-config.xml");
    //2.經過配置信息獲取一個SqlSessionFactory工廠對象
    SqlSessionFactory fac = 
            new SqlSessionFactoryBuilder().build( in );
    //3.經過工廠獲取一個SqlSession對象
    SqlSession session = fac.openSession();
    //4.經過namespace+id找到要執行的sql語句並執行sql語句
    List<User> list = session
            .selectList("EmpMapper.findAll");
    //5.輸出結果
    for(User e : list) {
        System.out.println( e );
    }
}

3.3 結果展現

執行findAll方法,輸出結果爲:
結果展現.jpgmybatis

相關文章
相關標籤/搜索