当前位置: 首页 > news >正文

Maven和MyBatis框架简单实现数据库交互

MyBatis是一种基于Java语言的持久层框架,它的主要目的是简化与数据库的交互过程。MyBatis通过XML或注解配置来映射Java对象和数据库表之间的关系,并提供了灵活的查询方式和结果集处理机制。MyBatis还提供了事务管理、缓存机制、插件扩展等特性。

使用MyBatis可以将SQL语句和Java代码分离,使得代码结构更加清晰,易于维护。在MyBatis中,开发者只需要关注业务逻辑的实现,而不需要过多关注数据库底层操作的细节。MyBatis支持多种方式执行SQL语句,包括通过XML文件定义的静态SQL语句、动态SQL语句、以及直接调用存储过程等。

MyBatis中的数据对象是以JavaBean的形式存在的,通过XML或注解方式映射到数据库表中,这种映射方式可以很好地保证数据的一致性和可维护性。同时,MyBatis还提供了一系列高级特性,例如二级缓存、延迟加载等,这些特性可以有效提高系统性能。

总的来说,MyBatis是一款非常优秀的持久层框架,它的设计理念简单而明确,易于上手,同时又具备很高的扩展性和灵活性,可以满足不同应用场景下的需求。

下面开始一个简单的实现吧:

1.添加关于mybatis的依赖包,网上可以找到,常规三层架构

2.添加链接数据信息的jdbc.properties文件到main/resources资源文件夹位置

3.添加Mybatis的配置文件到main/resources资源文件夹位置

4.创建一个获取 MyBatis SqlSession 的工具类 MybatisUtil类

    关于mybatis内中的类和方法详解;       

                SqlSessionFactoryBuilder 是 MyBatis 中的一个构建器类,它的主要作用是读取配置文件并构建 SqlSessionFactory 实例。SqlSessionFactoryBuilder 类是一个短暂存在的对象,它的生命周期仅限于创建 SqlSessionFactory 对象。

        在使用 MyBatis 进行持久化操作时,我们需要先创建一个 SqlSessionFactory 实例。SqlSessionFactory 实例是 MyBatis 的核心对象之一,它负责创建 SqlSession 对象,SqlSession 对象则负责执行数据库的增删改查操作。

       SqlSessionFactory 实例化过程中需要一个配置对象,这个配置对象包含了 MyBatis 的所有配置信息。SqlSessionFactoryBuilder 通过解析配置文件,读取其中的配置信息,然后生成一个 SqlSessionFactory 实例。因此,我们可以将 SqlSessionFactoryBuilder 看作是 SqlSessionFactory 的工厂类。

      在代码中,通常会使用 SqlSessionFactoryBuilder 的 build() 方法来创建 SqlSessionFactory 实例。例如:

    上述代码中,我们首先创建了一个 SqlSessionFactoryBuilder 对象 builder,然后通过 Resources.getResourceAsStream() 方法获取了 mybatis-config.xml 文件的输入流 inputStream。最后,我们通过 builder.build(inputStream) 方法创建了一个 SqlSessionFactory 实例 factory。

   总的来说,SqlSessionFactoryBuilder 类是 MyBatis 中用来创建 SqlSessionFactory 实例的一个重要类,而 SqlSessionFactory 实例则是连接 MyBatis 和数据库的重要桥梁。

5.控制层利用BaseDaoUtil类来获取对象,如下:

6.接口实现方法,配置接口得到映射文件

配置文件 详解

相关文章:

  • GPT-4技术报告的解读(二)
  • haiku实现三角乘法模块
  • 说一下mysql的锁
  • Configure Virtual Serial Port Driver串口模拟器VSPD
  • 【手把手带你玩转MyBatis】基础篇:掌握事务管理,确保数据操作的原子性与一致性
  • 【JVM调优系列】如何导出堆内存文件
  • 微信小程序支付之V2支付
  • QT上位机开发(进度条操作)
  • 2024.1.14
  • 【驱动】TI AM437x(内核调试-06):网卡(PHY和MAC)、七层OSI
  • C++笔记
  • springcloud gateway动态路由
  • Erlang/OTP中的日志与事件处理(一)
  • vue2使用electron以及打包配置
  • 【小白专用】C# 连接 MySQL 数据库
  • K8S 日志方案
  • webpack的性能优化(二)——减少打包体积
  • Baumer工业相机堡盟工业相机如何使用OpenCV实现相机图像的显示(C#)
  • Pandas实战100例 | 案例 13: 数据分类 - 使用 `cut` 对数值进行分箱
  • 软件测试|SQLAlchemy环境安装与基础使用
  • 国际奥委会举办研讨会,聚焦如何杜绝操纵比赛
  • 张涌任西安市委常委,已卸任西安市副市长职务
  • 夜读丨读《汉书》一得
  • 袁思达已任中国科学院办公厅主任
  • 新闻1+1丨婚姻登记服务,如何跑出幸福加速度?
  • 金俊峰已跨区任上海金山区委副书记