Mybatis学习笔记--SqlSessionFactory、SqlSession等
来源:互联网 发布:天纵国际软件 编辑:程序博客网 时间:2024/06/08 08:42
一、创建SqlSessionFactory
1、通过XML创建SqlSessionFactory
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${driver}"/><property name="url" value="${url}"/><property name="username" value="${username}"/><property name="password" value="${password}"/></dataSource></environment></environments><mappers><mapper resource="org/mybatis/example/BlogMapper.xml"/></mappers></configuration>---改代码片段由mybatis官方文档提供
注意:1)这里的dtd为config.dtd,应注意与mapper的dtd相区别 2)如果数据源的value是${}时在根路径下应存在一个后缀名为properties的文件,其中内容包括driver等连接数据库的信息并且在xml文件中引入properties文件
2、编程式创建SqlSessionFactory
DataSource dataSource = BlogDataSourceFactory.getBlogDataSource();TransactionFactory transactionFactory = new JdbcTransactionFactory();Environment environment = new Environment("development", transactionFactory,dataSource);Configuration configuration = new Configuration(environment);configuration.addMapper(BlogMapper.class);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
--该代码片段出自mybatis官方文档
注意:在这个例子中configration加入了一个映射,这个映射是一个java类,它包括SQL映射的注解,以此来避免使用xml文件,由于java注解的局限性和mybaits映射的复杂性
xml对于一些高级映射仍然有存在的必要(如:join映射),因此,mybatis将自动查找并加载xml文件如果这个文件存在的话(在这个例子中,BlogMapper.xml
将被加载,基于BlogMapper.接口)
二、SqlSession
创建好了SqlSessionFactory你就可以获得一个SqlSession实例。SqlSession包括每一个执行SQL 命令的方法,你可以通过SqlSession执行已映射的SQL语句。如下例
SqlSession session = sqlSessionFactory.openSession();try {Blog blog = session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);} finally {session.close();}
本例出自官方文档,这是mybatis之前的版本所使用的方法,现在有一个简单的方法,使用一个接口(例如,BlogMapper),这个方法描述了所给的statment的参数、返回值。如下例
SqlSession session = sqlSessionFactory.openSession();try {BlogMapper mapper = session.getMapper(BlogMapper.class);Blog blog = mapper.selectBlog(101);} finally {session.close();}本例出自官方文档
三、SQL Statment
首先需要一个dtd为mapper.dtd的xml文件 如下:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="org.mybatis.example.BlogMapper"><select id="selectBlog" resultType="Blog">select * from Blog where id = #{id}</select></mapper>
在namespace中定义一个映射id='selectBlog' 你就可以调用全限定名为
org.mybatis.example.BlogMapper.selectBlog的映射语句如下例:
Blog blog = session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);但是有一个更好的方法如下
BlogMapper mapper = session.getMapper(BlogMapper.class);Blog blog = mapper.selectBlog(101);这种方法好在,第一不依赖于字符串的值,因此更安全,第二IDE有代码补全功能三、作用域和生命周期
SqlSessionFactoryBulider的作用域最好是方法
SqlSessionFactory最好的作用域是应用中,即一个应用程序中只创建一个
SqlSession最好的作用于是请求或者方法,但是使用后记得释放资源
映射器实例(Mapper instances)最好的作用域是方法
阅读全文
0 0
- Mybatis学习笔记--SqlSessionFactory、SqlSession等
- MyBatis学习总结(1)----SqlSessionFactory,SqlSession及配置文件
- Mybatis - 获取SqlSessionFactory和SqlSession
- SqlSessionFactory创建SqlSession测试mybatis的sql
- mybatis源码学习之执行过程分析(1)——SqlSessionFactory及SqlSession的创建
- mybatis学习笔记(八)Sqlsession详解
- Mybatis学习笔记(一)-----SqlSession
- MyBatis--SqlSessionFactoryBuilder,SqlSessionFactory,SqlSession作用域和生命周期
- Mybatis源码分析(二)- SqlSessionFactory和SqlSession详解
- Mybatis源码分析之SqlSessionFactory,SqlSession和连接池
- MyBatis常用对象SqlSessionFactory和SqlSession介绍和运用
- Mybatis学习笔记(02) 多种方法配置SqlSessionFactory
- sqlsession和sqlsessionFactory区别
- 从SqlSessionFactory获取SqlSession
- SqlSessionFactory和Sqlsession
- SqlSession的使用范围---Mybatis学习笔记(五)
- SqlSession的使用范围---Mybatis学习笔记(五)
- myBatis源码学习之SqlSessionFactory
- 一些汇编指令和寄存器。
- Qt程序打包发布方法(使用官方提供的windeployqt工具)
- IntelliJ Idea 常用快捷键
- 从零开始前端学习[12]:css样式中的高级选择器
- 词汇表
- Mybatis学习笔记--SqlSessionFactory、SqlSession等
- ArrayList
- input、put、input() 、put()用法与区别
- java 设计模式 装饰模式
- char a[](字符串数组)和char *a(字符串指针)区别
- 动态添加Fragment
- Qt5 程序发布打包
- WPF数据绑定机制是如何实现
- request对象