mybatis的配置

Z丶tao發表於2020-05-28

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>

相關文章