从XML中构建SqlSessionFactory从XML文件中构建SqlSessionFactory的实例非常简单。这里建议你使用类路径下的资源文件来配置.

String resource = "org/mybatis/example/Configuration.xml";

Reader reader = Resources.getResourceAsReader(resource);

sqlMapper = new SqlSessionFactoryBuilder().build(reader);

XML配置文件包含对MyBatis系统的核心设置,包含获取数据库连接实例的数据源和决定事务范围和控制的事务管理器。如例:

/p>

当然,在XML配置文件中还有很多可以配置的,上面的示例指出的则是最关键的部分。

从SqlSessionFactory中现在,我们已经知道如何获取SqlSessionFactory对象了,基于同样的启示,我们就可以获得SqlSession的实例了。SqlSession对象完全包含以数据库为背景的所有执行SQL操作的方法。你可以用SqlSession实例来直接执行已映射的SQL 语句。例如:

SqlSession session = sqlMapper.openSession();

try{

Blog blog = (Blog)session.selectOne("org.mybatis.example.BlogMapper.selectBlog",101);

}finally{

session.close();

}

现在有一种更简洁的方法。使用合理描述参数和SQL语句返回值的接口(比如BlogMapper.class),这样现在就更简单,更安全的代码,http://www.cppcns.com没有容易发生的字符串文字和转换的错误。例如:

S编程客栈qlSession session = sqlSessionFactory.openSession();

try {

BlogMapper mapper = session.getMapper(BlogMapper.class);

Blog blog = mapper.selectBlog(101);

}finally{

session.close();

}

探究已映射的SQL语句这里给出一个基于XML映射语句的示例,这些语句应该可以满足上述示例中SqlSession对象的调用。

/p>

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select * from Blog where id = #{id}

在命名空间“com.mybatis.example.BlogMapper”中,它定义了一个名为“selectBlog”的映射语句,这样它允许你使用完全限定名“org.mybatis.example.BlogMapper.selectBlog”来调用映射语句,我们下面示例中的写法也就是这样的。

Blog blog = (Blog)session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);

但下面的调用更有优势:

映射接口对应映射xml文件的命令空间,接口方法对应映射xml文件中定义的SQL映射的ID。???????????

BlogMapper mapper = session.getMapper(BlogMapper.class);

Blog blog = mapper.selectBlog(101);

首先它不是基于文字的,那就更安全了。第二,如果你的IDE有代码补全功能,那么你可以利用它来操纵已映射的SQL语句。第三,不需要强制类型转换,同时BlogMapper接口可以保持简洁,返回值类型很安全(参数类型也很安全)。

本文标题: 获取Java的MyBatis框架项目中的SqlSession的方法

本文地址: http://www.cppcns.com/ruanjian/java/151944.html

java 获取sqlsession_获取Java的MyBatis框架项目中的SqlSession的方法相关推荐

  1. java工程编辑器中文乱码_Java Web开发项目中中文乱码解决方法汇总

    Java Web项目中,解决中文乱码方法总结如下 第一种情况:调用jsp页面中文显示乱码问题描述:通过浏览器调用jsp页面,在浏览器中显示的中文内容出现乱码. 解决方法:首先确认本jsp在编辑器中保存 ...

  2. java输出的汉字变成乱码_Java Web项目中解决中文乱码方法总结

    一.了解常识: 1.UTF-8国际编码,GBK中文编码.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.web tomcat:默认是ISO8859-1,不 ...

  3. vue框架项目中使用阿里矢量图标库

    vue框架项目中使用阿里矢量图标库 一.打开阿里矢量图标,将需要图标加入购物车,选择下载代码 二.解压缩包,将解压缩后的 文件夹放入项目文件夹下的src/assets 1.在main.js中引入css ...

  4. java 定时任务怎么关闭_浅谈springboot项目中定时任务如何优雅退出

    在一个springboot项目中需要跑定时任务处理批数据时,突然有个Kill命令或者一个Ctrl+C的命令,此时我们需要当批数据处理完毕后才允许定时任务关闭,也就是当定时任务结束时才允许Kill命令生 ...

  5. 【Java学习】从一个简单的HelloWorld项目中入门maven

    创建一个maven项目 这里推荐官方文档:maven官方文档 [注]此篇文章也是笔者学习笔记,如有错误,请见谅. [注]我把Goal翻译成命令.比如Plugin Goal: ps:我他喵的写了一大半的 ...

  6. java域的控制修饰符可分为_Java中的类和方法的修饰符

    java 中的类和方法的修饰符Java程序在定义类时,除了使用class关键字标识之外,还可以在class之前增加若干类的修饰符来修饰限定所定义的类的特性.类的修饰符分为访问控制符和非访问控制符两大类 ...

  7. JAVA调用接口简单封装,Mvp+Retrofit2+RxJava2 项目中使用的简洁封装

    Retrofit2 + RxJava2 是一个强大的组合,完成一系列网络请求 MVP当前用的很多的一种框架,Model+View+Presenter 本文记录了作者在项目中对 Retrofit2 + ...

  8. MyBatis框架generatorSqlmapCustom自动生成及下载方法

    参考这个博客地址:常用数据库的驱动程序加载和Url下载地址 https://blog.csdn.net/qq_30225725/article/details/88574463 1.把下载好的驱动放到 ...

  9. java和opencv配置_Java——OpenCVWindows配置和项目中jar包的简单配置

    1. 安装OpenCV 1.1 下载相应的OpenCV版本,解压 1.2 将 openCV的dll文件(D:\InstallPackages\OpenCV\opencv\build\java\x64) ...

最新文章

  1. Symbian开发系列 - 入门篇
  2. 2017-2018-1 20155226 20155234 《信息安全系统设计基础》 实验一总结
  3. 高斯过程回归python_基于python的高斯过程回归训练集数据扩充
  4. python入门之函数结构函数的参数_python3基础之函数参数类型
  5. 自然哲学的数学原理_慢跑的数学原理(一):珍惜做的每一份功
  6. java类内存中只能运行一个实例对象
  7. canvas学习之柱状图
  8. 云原生是全云开发的敲门砖?蒋涛独家对话阿里云贾扬清、华先胜等大咖
  9. 不满当免费劳力,NPM 热门库 “colors” 和 “faker” 的作者设无限循环
  10. Windows字体拯救计划(雅黑+monaco+mactype)
  11. linux环境下安装curl,Linux环境下curl安装和移植
  12. 空芯线圈电感计算公式
  13. sci结构及写作顺序
  14. ThreeJs基础代码段(五)飘扬的旗帜
  15. 二重积分x^2+y^2_计算二重积分∫∫(x+y)dxdy,其中D为x^2+y^2≤2x
  16. 无理数存在性的几何证明
  17. 大数据工程师、BI工程师、数据库工程师什么区别?
  18. IDEA自动生成注解 及 解决 Wrong tag ‘Author‘ 等警告信息
  19. 租房是每个奋斗者的必修课
  20. linux 定时关机命令

热门文章

  1. pandas(一)-- Series创建及索引
  2. php测试宽带速度慢,宽带速度慢怎么办?
  3. 解析Markdown文件生成React组件文档
  4. reactjs组件实例三大属性之refs使用示例:字符串形式的ref、回调函数形式的ref、回调ref中回调执行次数的问题
  5. 基于nginx实现minio分布式集群访问的负载均衡配置示例
  6. K8S部署工具:KubeOperator集群导入
  7. DEEPIN 20.2.2社区版设置双屏显示(y7000p)
  8. centos7.x 升级svn版本到指定版本(1.10)
  9. Lucene索引库的维护功能实现
  10. Ubuntu安装pygame的过程记录与分享(包括python的卸载,openssl的安装,python3.7的安装,pygame的安装)