Mybatis三大基本要素

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>






  

原文地址:https://www.cnblogs.com/xuhaifeng017/p/7677991.html