前言
該文章只是個人筆記總結,詳細學習請訪問底部MyBatis官方文檔。使用的開發工具爲IDEA.
一、介紹
MyBatis 是一款優秀的持久層框架,它支持自定義 SQL、存儲過程以及高級映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設置參數和獲取結果集的工作。MyBatis 可以通過簡單的 XML 或註解來配置和映射原始類型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 對象)爲數據庫中的記錄
MyBatis 底層封裝了 JDBC。
二、安裝
1.下載jar導入
下載jar導入:https://github.com/mybatis/mybatis-3/releases
下載的文件解釋:
2.使用maven
這裏我使用maven進行導入
使用maven導入:
<dependencies>
<!-- mybatis核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.4</version>
</dependency>
<!-- mysql驅動包,一會需要用到 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.29</version>
</dependency>
</dependencies>
三、MyBatis配置文件
每個基於 MyBatis 的應用都是以一個 SqlSessionFactory 的實例爲核心的。SqlSessionFactory 的實例可以通過 SqlSessionFactoryBuilder 獲得。而 SqlSessionFactoryBuilder 則可以從 XML 配置文件或一個預先配置的 Configuration 實例來構建出 SqlSessionFactory 實例。
1.使用 xml 配置
XML 配置文件中包含了對 MyBatis 系統的核心設置,包括獲取數據庫連接實例的數據源(DataSource)以及決定事務作用域和控制方式的事務管理器(TransactionManager)。
在resourses目錄下創建mybatis-config.xml文件(MyBatis的配置文件),進行如下配置。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">
<!-- 事務管理器 -->
<transactionManager type="JDBC"/>
<!-- 獲取數據庫連接實例的數據源 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/demo"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!-- 映射器 -->
<mappers>
<!--加載映射文件-->
<mapper resource="mapper/UserMapper.xml"></mapper>
<!--加載接口-->
<!-- <mapper class="mapper.UserMapper"></mapper>-->
<!--加載地址-->
<!--<mapper url="D://UserMapper.xml"></mapper>-->
<!--加載接口所在的包-->
<!--<package name="com.shengjava.mapper"></package>-->
</mappers>
</configuration>
2.使用 Java 代碼配置
請查看官方文檔 “入門” 中的 “不使用 XML 構建 SqlSessionFactory”。
四、簡單使用
在上面的 mybatis-config.xml 配置文件中的數據庫demo中,已經創建好了user表,且僅有兩個字段。
項目結構如下:
1.創建接口
package com.shengjava.mapper;
import com.shengjava.pojo.User;
public interface UserMapper {
User selectUser(int id);
}
2.創建實體類
package com.shengjava.pojo;
/**
* @author ChangSheng
* @date 2020-03-19
*/
public class User {
private int id;
private String name;
public User() {
}
public User(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
3.創建xml映射文件
放到resourses/mapper目錄下
<?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.shengjava.mapper.UserMapper">
<select id="selectUser" resultType="com.shengjava.pojo.User" >
select * from User where id = #{id}
</select>
</mapper>
4.測試類
從 XML 文件中構建 SqlSessionFactory 的實例非常簡單,建議使用類路徑下的資源文件進行配置。 但也可以使用任意的輸入流(InputStream)實例,比如用文件路徑字符串或 file:// URL 構造的輸入流。MyBatis 包含一個名叫 Resources 的工具類,它包含一些實用方法,使得從類路徑或其它位置加載資源文件更加容易。
備註:在舊版本的 MyBatis 中,可以使用其他方式"從 SqlSessionFactory 中獲取 SqlSession"。這裏這裏使用簡單一點的方式。
import com.shengjava.mapper.UserMapper;
import com.shengjava.pojo.User;
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;
/**
* @author ChangSheng
* @date 2020-03-19
*/
public class MyBatisTest {
public static void main(String[] args) throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 從 SqlSessionFactory 中獲取 SqlSession
try (SqlSession session = sqlSessionFactory.openSession()) {
UserMapper mapper = session.getMapper(UserMapper.class);
User user = mapper.selectUser(1);
System.out.println(user);
}
}
}
至此,mybatis已可以成功運行。
參考
MyBatis官方文檔(中文):https://mybatis.org/mybatis-3/zh/getting-started.html
使用IDEA Maven搭建mybatis環境:https://www.cnblogs.com/wvae/p/9607684.html
源碼
鏈接:https://pan.baidu.com/s/1TRDTrJoqQYj6iXsalxGcfg
提取碼:1noy