MyBatis是什麼?
首先了解一個概念:
ORM:Object Relation Mapping.實體關係映射,是程序實體類對象和數據庫表之間的映射。
ORM可以使得開發人員像操作對象一樣操作數據庫表。
ORM是一個概念,MyBaties是ORM的一個實現,相似的還有Hibernate、JPA。
MyBatis 是一款優秀的持久層框架,它支持定製化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記錄。
MyBatis可以簡化JDBC操作,實現數據的持久化。
MyBatis入門之配置文件
要使用MyBatis,首先要了解兩個配置文件,一個是全局配置文件,另一個則爲映射類配置文件,文件爲XML格式。
全局配置文件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">
<configuration>
<typeAliases>
<package name="com.cn.bean"/>
</typeAliases>
<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://localhost:3306/mybatis?useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/cn/bean/Category.xml"/>
</mappers>
</configuration>
開頭部分爲XML版本和編碼格式
然後爲!DOCTYPE聲明 用於配置dtd文檔
正文部分由<configuration></configuration>標籤包裹,裏面的標籤,我們需要了解以下幾個:
<typeAliases>
<package name="com.cn.bean"/>
</typeAliases>
用於指示實體類的位置,在映射配置文件中可以不用報名限制類名,直接使用類名。
<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://localhost:3306/mybatis?useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
此部分是關於JDBC的配置,包括驅動、數據庫鏈接、登錄用戶名、密碼信息;可以直接寫死,也可以使用以下方式,將配置寫在配置文件中
<properties resource="dbconfig.properties"></properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置數據庫連接信息 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.name}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
注意資源文件路徑,資源文件和總配置文件在同一個目錄下時,可以直接使用資源文件名。
<mappers>
<mapper resource="com/cn/bean/Category.xml"/>
</mappers>
此部分用於指示映射類配置文件路徑
映射類配置文件 *Mapper.xml (和實體類位於同一文件夾)。和實體類產生映射,其中的SQL語句爲操作數據庫中對應實體類的表的語句。id爲SQL語句標識,resultType爲返回值的類型,parameterType爲傳入參數的類型。基本格式如下:
<?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.cn.bean">
<select id="selectAll" resultType="Category">
select * from category
</select>
</mapper>
使用
String resource="mybatis-config.xml";//聲明配置文件
//將資源文件轉化爲字節流
InputStream inputStream=Resources.getResourceAsStream(resource);
//使用配置文件字節流創建SqlSessionFactory工廠
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
//獲取一個SqlSession連接 對象可以調用各種傳入映射類配置文件SQL語句ID執行方法並獲取結果
SqlSession session=sqlSessionFactory.openSession();