MyBatis 框架
MyBatis 是一款優秀的持久層框架,它支援自定義 SQL、儲存過程以及高階對映。MyBatis 免除了幾乎所有的 JDBC 程式碼以及設定引數和獲取結果集的工作。MyBatis 可以通過簡單的 XML 或註解來配置和對映原始型別、介面和 Java POJO(Plain Old Java Objects,普通老式 Java 物件)為資料庫中的記錄。
一、新增maven依賴
<dependencies>
/* 測試依賴*/
<dependency>
<groupId>junit</groupId>北京動力節點 www.bjpowernode.com
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
/* mybatis依賴*/
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
</dependency>
</dependencies>
新增maven外掛
<build>
<resources>
<resource>
<directory>src/main/java</directory> <!--所在的目錄-->
<includes><!--包括目錄下的.properties,.xml 檔案都會掃描到-->
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
二、編寫Dao介面Mapper對映檔案 xxx.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">
<!-- namespace:dao介面的全限定名稱-->
<mapper namespace="org.mybatis.example.BlogMapper">
<!-- id: dao 介面中方法名稱
resultType:查詢語句的返回結果資料型別的全限定類名-->
<select id="selectBlog" resultType="Blog">
select * from Blog where id = #{id}
</select>
</mapper>
三、編寫MyBatis主配置檔案mybatis-config.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">
<!-- 加入日誌配置,可以在控制檯輸出執行的 sql 語句和引數 -->
<settings>
<setting name="logImpl" value="STDOUT_LOGGING" />
</settings>
<configuration>
<!-- default:使用的資料庫環境 -->
<environments default="mysql">
<!-- id:資料來源的名稱 -->
<environment id="mysql">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--dao介面對映檔案的位置-->
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
建立 properties 檔案
在 resources 目錄建立 jdbc.properties 檔案
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm
jdbc.username=root
jdbc.password=123456
四、使用mybatis
public void testInsert() throws IOException {
//1.mybatis 主配置檔案
String config = "mybatis-config.xml";
//2.讀取配置檔案
InputStream in = Resources.getResourceAsStream(config);
//3.建立 SqlSessionFactory 物件
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
//4.獲取 SqlSession
SqlSession session = factory.openSession();
//最後關閉
session.close();
}
建立MyBatisUtil 類
public class MyBatisUtil {
//定義 SqlSessionFactory
private static SqlSessionFactory factory = null;
static {
//使用 靜態塊 建立一次 SqlSessionFactory
try{
String config = "mybatis-config.xml";
//讀取配置檔案
InputStream in = Resources.getResourceAsStream(config);
//建立 SqlSessionFactory 物件
factory = new SqlSessionFactoryBuilder().build(in);
}catch (Exception e){
factory = null;
e.printStackTrace();
}
}
/* 獲取 SqlSession 物件 */
public static SqlSession getSqlSession(){
SqlSession session = null;
if( factory != null){
session = factory.openSession();
}
return session;
}
}
五、分頁查詢
(1)新增依賴
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>北京動力節點 www.bjpowernode.com
<version>5.1.10</version>
</dependency>
(2)加入plugin 配置
<!-- 在<environments>之前加入 -->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor" />
</plugins>