1. 程式人生 > >Mybatis三大基本要素

Mybatis三大基本要素

config prop 連接池 http 方法 uid 更改 onf 生命

1.核心對象

SqlSessionFactoryBuider對象
SqlSessionFactoryBuider對象可以被JVM虛擬機所實例化、使用或者銷毀。一旦使用SqlSessionFactoryBuider創建SqlSessionFactory對象後,SqlSessionFactoryBuider類就不需要存在了,也就是說不需要保持此對象的狀態,可以隨意的任由JVM銷毀。因此SqlSessionFactoryBuider對象的最佳適用範圍是方法之內。

SqlSessionFactory對象
SqlSessionFactory對象有SqlSessionFactoryBuilder對象創建。一旦創建SqlSessionFactory類的實例,該實例在應用程序執行期間都存在,根本不需要每一次操作數據庫時都重新創建他,所以應用它的最佳方式就是寫一個單例模式

,或使用Spirng框架來實現單例模式對SqlSessionFactory對象進行的管理。

SqlSession對象
SqlSession對象由SqlSessionFactory類創建,需要註意,每個線程都應該有自己的SqlSession實例。SqlSession的實例不能共享,它是線程不安全的,所以不能再Servlet中生命該對象的一個實例變量。因為Servlet是單例的,申明成實例會造成線程安全問題,也絕不能將SqlSession實例的對象放在一個類的靜態字段甚至是實例字段中。還不可以將Sqlsession實例的對象放在任何類型的管理範圍中,比如Servlet對象中的Httpsession會話。在接收到HTTP請求時,可以打開一個SqlSession對象操作數據庫,然後返回響應,就可以關閉它。關閉SqlSession很重要,應該確保使用finally塊來關閉它。

2.核心配置文件

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>
<properties resource="jdbc.properties"></properties>
<!-- 起別名-->
<typeAliases>
<package name="cn.happy.entity"></package>
</typeAliases>
<environments default="development">
<environment id="development"><!-- 標識可以更改-->
<transactionManager type="JDBC" /><!-- 事務管理機制JDBC[manager]-->
<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>

<!-- orcl可以有多個環境變量多個environments-->
</environments>
<!--映射文件:描述某個實體和數據庫表的對應關系 -->
<mappers>
<package name="cn.happy.dao"></package>
</mappers>
</configuration>

在pom.xml導入依賴
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.2</version>
</dependency>

3.SQL映射文件
<?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="cn.happy.dao.ISubjectDAO">

</mapper>






Mybatis三大基本要素