本文主要搭建一個簡單的項目,用於後面的源碼探究,熟悉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 ( '開發部', '北京' ), ( '測試部', '上海' ), ( '財務部', '深圳' ), ( '運營部', '西安' ), ( '後勤部', '廣州' );
<?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 版本。數據庫
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