MyBatis SqlSessionFactory的几种常见创建方式
来源:互联网 发布:印度 巴基斯坦 知乎 编辑:程序博客网 时间:2024/06/16 15:02
MyBatis框架主要是围绕着SqlSessionFactory这个类进行的,这个的创建过程如下:
- 定义一个Configuration对象,其中包含数据源、事务、mapper文件资源以及影响数据库行为属性设置settings
- 通过配置对象,则可以创建一个SqlSessionFactoryBuilder对象
- 通过 SqlSessionFactoryBuilder 获得SqlSessionFactory 的实例。
- SqlSessionFactory 的实例可以获得操作数据的SqlSession实例,通过这个实例对数据库进行操作
具体看看SqlSessionFactory的创建
一、通过Configuration.xml配置文件进行创建
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><properties resource="ssm/jdbc.properties"></properties><environments default="development"><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="${jdbc.driverClassName}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments><mappers><mapper resource="ssm/BlogMapper.xml"/></mappers></configuration>
- 代码实现
package ssm;import java.io.IOException;import java.io.Reader;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import com.sm.model.User;public class GetSqlSessionFactoryFromXML {public static void main(String[] args) throws IOException {//配置文件的名称String resource = "ssm/configuration.xml";//通过Mybatis包中的Resources对象很轻松的获取到配置文件Reader reader = Resources.getResourceAsReader(resource);//通过SqlSessionFactoryBuilder创建SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);//获得session实例SqlSession session =sqlSessionFactory.openSession();User user = new User();user.setId(8);//完成数据库的插入session.insert("add", user);session.commit();session.close();System.out.println(sqlSessionFactory);}}
二、在程序中构建这些对象来创建
- 代码实现
package ssm;import java.sql.SQLException;import javax.sql.DataSource;import org.apache.ibatis.datasource.pooled.PooledDataSource;import org.apache.ibatis.mapping.Environment;import org.apache.ibatis.session.Configuration;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.apache.ibatis.transaction.TransactionFactory;import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;import com.sm.model.User;public class GetSqlSessionFactoryFromProgram {public static void main(String[] args) throws SQLException {String driver = "oracle.jdbc.OracleDriver";String url = "jdbc:oracle:thin:@localhost:1521:orcl";String username="scott";String password="tiger";//创建使用缓存池的数据源/* * <dataSource type="POOLED"><property name="driver" value="${jdbc.driverClassName}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource> */DataSource dataSource =new PooledDataSource(driver,url,username,password);//创建事务/* * <transactionManager type="JDBC" /> */TransactionFactory transactionFactory = new JdbcTransactionFactory();Environment environment = new Environment("development", transactionFactory, dataSource);Configuration configuration = new Configuration(environment);//加入资源/* * <mapper resource="ssm/BlogMapper.xml"/> */configuration.addMapper(UserMapper.class);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);System.out.println(sqlSessionFactory);SqlSession session = sqlSessionFactory.openSession();User user = new User();user.setId(6); session.insert("add", user); session.commit();session.close();}}
三、通过与Spring集成,由Spring容器管理创建
- 在spring的配置文件applicationContext.xml中配置
<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath*:conf/configuration.xml" /></bean>
如果使用则直接注入,获取SqlSessionFactory实例即可。
0 0
- MyBatis SqlSessionFactory的几种常见创建方式
- mybatis 构建SqlSessionFactory的几种方式 以及调用sql映射语句的几种方式
- MyBatis核心SqlSessionFactory的创建
- MyBatis核心SqlSessionFactory的创建
- MyBatis核心SqlSessionFactory的创建
- MyBatis的SqlSessionFactory的创建问题
- SqlSessionFactory创建SqlSession测试mybatis的sql
- 在MyBatis中 SqlSessionFactory的创建过程
- MyBatis 配置文件以及SqlSessionFactory对象的创建
- Mybatis SqlSessionFactory创建过程
- mybatis创建SqlSessionFactory
- Mybatis运作流程(手动方式创建sqlSessionFactory)
- 线程池的几种常见的创建的方式
- 线程池的几种常见的创建的方式
- mybatis中获取SqlSessionFactory的几种方法及其相关使用
- mybatis的sqlsessionFactory
- cocos2d-js常见对象的几种创建方式
- Java中常见的创建对象几种方式
- IOS基础UI之(七)综合小案例-猜图
- POJ1837
- 在windows上安装php扩展
- NYOJ——463 九九乘法表
- 剑指offer第二十题【包含min函数的栈】c++实现
- MyBatis SqlSessionFactory的几种常见创建方式
- Objective-C Foundation框架实践——NSArray(一)
- 在ogre中加载 ogremax场景文件方法
- 汇编语言 第三版 王爽 实验12 编写0号终端的处理程序
- kendoui分级显示
- 黑马程序员-java基础(七)-IO流
- 第二章 构造函数语意学 成员们的初始化队伍
- [置顶]R语言 分层抽样---分层随机抽样(SRS)(二 )
- OGRE的主要渲染流程