mybatis源碼分析-環境搭建

本文主要搭建一個簡單的項目,用於後面的源碼探究,熟悉mybatis的能夠略過此章節。java

數據庫表建立

建立一張表 deptmysql

CREATE TABLE `dept` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `dept_name` varchar(255) DEFAULT NULL,
  `address` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

插入幾條數據:sql

INSERT INTO dept ( dept_name, address )
VALUES
    ( '開發部', '北京' ),
    ( '測試部', '上海' ),
    ( '財務部', '深圳' ),
    ( '運營部', '西安' ),
    ( '後勤部', '廣州' );

建立一個maven工程

<?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.yefengyu.mybatis</groupId>  
    <artifactId>mybatis</artifactId>  
    <version>1.0-SNAPSHOT</version>  
  
    <dependencies>  
        <dependency>  
            <groupId>org.mybatis</groupId>  
            <artifactId>mybatis</artifactId>  
            <version>3.5.3</version>  
        </dependency>  
        <dependency>  
            <groupId>mysql</groupId>  
            <artifactId>mysql-connector-java</artifactId>  
            <version>5.1.46</version>  
        </dependency>  
    </dependencies>  
  
</project>

添加 mybatis 依賴,本次使用目前最新的 3.5.3 版本。數據庫

新建實體 Dept 和數據庫表對應

package com.yefengyu.mybatis;  
  
public class Dept {  
    private Long id;  
    private String deptName;  
    private String address;  
  
    public Long getId() {  
        return id;  
    }  
  
    public void setId(Long id) {  
        this.id = id;  
    }  
  
    public String getDeptName() {  
        return deptName;  
    }  
  
    public void setDeptName(String deptName) {  
        this.deptName = deptName;  
    }  
  
    public String getAddress() {  
        return address;  
    }  
  
    public void setAddress(String address) {  
        this.address = address;  
    }  
  
    @Override  
    public String toString() {  
        return "Dept{" +  
                "id=" + id +  
                ", deptName='" + deptName + '\'' +  
                ", address='" + address + '\'' +  
                '}';  
    }
}

新建接口

package com.yefengyu.mybatis;  
  
import java.util.List;  
  
public interface DeptMapper {  
    List<Dept> getAllDept();  
}

接口實現

<?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.yefengyu.mybatis.DeptMapper">  
    <select id="getAllDept" resultType="com.yefengyu.mybatis.Dept">  
        select id, dept_name deptName, address  
        from dept  
    </select>  
</mapper>

全局配置文件

<?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="default">  
        <environment id="default">  
            <transactionManager type="JDBC"/>  
            <dataSource type="POOLED">  
                <property name="driver" value="com.mysql.jdbc.Driver"/>  
                <property name="url" value="jdbc:mysql://localhost:3306/yefengyu?useUnicode=true"/>  
                <property name="username" value="root"/>  
                <property name="password" value="000000"/>  
            </dataSource>  
        </environment>  
    </environments>  
  
    <mappers>  
        <mapper resource="mappers/DeptMapper.xml"/>  
    </mappers>  
</configuration>

測試

package com.yefengyu.mybatis;  
  
import org.apache.ibatis.io.Resources;  
import org.apache.ibatis.session.SqlSession;  
import org.apache.ibatis.session.SqlSessionFactory;  
import org.apache.ibatis.session.SqlSessionFactoryBuilder;  
  
import java.io.IOException;  
import java.io.InputStream;  
import java.util.List;  
  
public class Main {  
    public static void main(String[] args) throws IOException {  
        String resource = "mybatis-config.xml";  
        InputStream inputStream = Resources.getResourceAsStream(resource);  
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);  
        SqlSession sqlSession = sqlSessionFactory.openSession();  
        try {  
            DeptMapper deptMapper = sqlSession.getMapper(DeptMapper.class);  
            List<Dept> deptList = deptMapper.getAllDept();  
            System.out.println(deptList);  
        } finally {  
            sqlSession.close();  
        }  
    }  
}

結果:apache

[Dept{id=1, deptName='開發部', address='北京'}, Dept{id=2, deptName='測試部', address='上海'}, Dept{id=3, deptName='財務部', address='深圳'}, Dept{id=4, deptName='運營部', address='西安'}, Dept{id=5, deptName='後勤部', address='廣州'}]

本次環境搭建到此爲止,後面將深刻源碼分析mybatis.session

相關文章
相關標籤/搜索