热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Mybatis一发入魂之主要类的介绍和创建工具类

主要类的介绍1.Resources类:mybatis中的一个类,主要读取配置文件Stringsmybatis-Zhu.xml;InputSt

主要类的介绍

1.Resources类:

mybatis中的一个类,主要读取配置文件

String s = "mybatis-Zhu.xml";
InputStream in = Resources.getResourceAsStream(s);

2.SqlSessionFactoryBuilder类:

创建SqlSessionFactory对象,用builder方法创建SqlSessionFactory对象

SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();//创建SqlSessionFactory对象SqlSessionFactory factory = builder.build(in);

3.SqlSessionFactory:

重量级对象,程序创建一个对象耗时较长,使用资源比较多,在整个项目中有一个就够用了。

SqlSessionFactory是一个接口,实现类:DefaultSqlSessionFactory。

SqlSessionFactory作用:获取SqlSession对象

//创建SqlSessionFactory对象
SqlSessionFactory factory = builder.build(in);
//获取 SqlSession对象,从SqlSessionFactory中获取
SqlSession sqlSession = factory.openSession();

openSession():无参数,获取是非自动提交事务的SqlSession对象

openSession():有参数,true获取是自动提交事务的SqlSession对象

                                       false获取是非自动提交事务的SqlSession对象

SqlSession:

是一个接口:定义了操作数据的方法,

例如,selectOne(),selectList(),insert(),update(),delete(),commit(),rollback()

SqlSession接口的实现类DefaultSession

使用要求:SqlSess对象不是线程安全的,需要在方法内部使用,在执行sql语句之前蛮实用openSeseeion()获取SqlSession对象,在执行完sql语句后,需要关闭,执行sqlSession.close()

sqlSession.close();

----------------------------------------------------------------------------------------------------------


创建一个工具类

专门用来获取SqlSession对象

第一步:

创建一个utils包,在utils包里创建一个MyBatisUtils类

 第二步:

SqlSessionFactory对象是重量级的,一个项目一个就够用,所以在静态代码块中创建,类加载的时候,静态代码块只执行一次,

使用:直接用类名MyBatisUtils.getSqlSession()得到一个SqlSession对象

public class MyBatisUtils {private static SqlSessionFactory factory = null;static {String s = "mybatis-Zhu.xml";//和项目中的主配置文件名一致try {InputStream in = Resources.getResourceAsStream(s);//创建SqlSessionFactory对象factory = new SqlSessionFactoryBuilder().build(in);} catch (IOException e) {e.printStackTrace();}}//获取SqlSession方法public static SqlSession getSqlSession(){SqlSession sqlSession = null;if (factory != null) {sqlSession=factory.openSession();//非自动提交事务}return sqlSession;}}


推荐阅读
  • 深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案
    深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案 ... [详细]
  • 本文探讨了如何利用Java代码获取当前本地操作系统中正在运行的进程列表及其详细信息。通过引入必要的包和类,开发者可以轻松地实现这一功能,为系统监控和管理提供有力支持。示例代码展示了具体实现方法,适用于需要了解系统进程状态的开发人员。 ... [详细]
  • 分享一款基于Java开发的经典贪吃蛇游戏实现
    本文介绍了一款使用Java语言开发的经典贪吃蛇游戏的实现。游戏主要由两个核心类组成:`GameFrame` 和 `GamePanel`。`GameFrame` 类负责设置游戏窗口的标题、关闭按钮以及是否允许调整窗口大小,并初始化数据模型以支持绘制操作。`GamePanel` 类则负责管理游戏中的蛇和苹果的逻辑与渲染,确保游戏的流畅运行和良好的用户体验。 ... [详细]
  • 在Java项目中,当两个文件进行互相调用时出现了函数错误。具体问题出现在 `MainFrame.java` 文件中,该文件位于 `cn.javass.bookmgr` 包下,并且导入了 `java.awt.BorderLayout` 和 `java.awt.Event` 等相关类。为了确保项目的正常运行,请求提供专业的解决方案,以解决函数调用中的错误。建议从类路径、依赖关系和方法签名等方面入手,进行全面排查和调试。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • Spring框架中枚举参数的正确使用方法与技巧
    本文详细阐述了在Spring Boot框架中正确使用枚举参数的方法与技巧,旨在帮助开发者更高效地掌握和应用枚举类型的数据传递,适合对Spring Boot感兴趣的读者深入学习。 ... [详细]
  • 本文深入解析了WCF Binding模型中的绑定元素,详细介绍了信道、信道管理器、信道监听器和信道工厂的概念与作用。从对象创建的角度来看,信道管理器负责信道的生成。具体而言,客户端的信道通过信道工厂进行实例化,而服务端则通过信道监听器来接收请求。文章还探讨了这些组件之间的交互机制及其在WCF通信中的重要性。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
  • 本文详细介绍了在 Android 7.1 系统中调整屏幕分辨率和默认音量设置的方法。针对系统默认音量过大的问题,提供了具体的步骤来降低系统、铃声、媒体和闹钟的默认音量,以提升用户体验。此外,还涵盖了如何通过系统设置或使用第三方工具来优化屏幕分辨率,确保设备显示效果更加清晰和流畅。 ... [详细]
  • 在iOS开发中,基于HTTPS协议的安全网络请求实现至关重要。HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer)是一种旨在提供安全通信的HTTP扩展,通过SSL/TLS加密技术确保数据传输的安全性和隐私性。本文将详细介绍如何在iOS应用中实现安全的HTTPS网络请求,包括证书验证、SSL握手过程以及常见安全问题的解决方法。 ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • SQL 查询实体优化与实战技巧分享 ... [详细]
author-avatar
哈哈
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有