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.接口实现方法,配置接口得到映射文件

配置文件 详解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/622581.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux学习记录——사십 高级IO(1)

文章目录 1、IO2、同、异步IO(5种IO类型)3、其它高级IO4、非阻塞IO 其它IO类型的实现在这篇之后的三篇 1、IO input,output。调用read或recv接口时,如果对方长时间不向我方接收缓冲区拷贝数据,我们的进程就只能阻塞&a…

基于面向对象,C++实现双链表

双链表同单链表类似,由一个值和两个指针组成 Node.h节点头文件 #pragma once class Node { public:int value;Node* prev;Node* next;Node(int value);~Node(); };Node.cpp节点源文件 #include "Node.h"Node::Node(int value) {this->value value…

如何开启文件共享及其他设备如何获取

1.场景分析 日常生活中,常常会遇到多台电脑共同办公文件却不能共享的问题,频繁的用移动硬盘、U盘等拷贝很是繁琐,鉴于此,可以在同一内网环境下设置共享文件夹,减少不必要的文件拷贝工作,提升工作效率。废话…

希尔排序和计数排序

📑前言 本文主要是【排序】——希尔排序、计数排序的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句…

【PyTorch简介】3.Loading and normalizing datasets 加载和规范化数据集

Loading and normalizing datasets 加载和规范化数据集 文章目录 Loading and normalizing datasets 加载和规范化数据集Datasets & DataLoaders 数据集和数据加载器Loading a Dataset 加载数据集Iterating and Visualizing the Dataset 迭代和可视化数据集Creating a Cust…

【Docker篇】从0到1搭建自己的镜像仓库并且推送镜像到自己的仓库中

文章目录 🔎docker私有仓库🍔具体步骤 🔎docker私有仓库 Docker私有仓库的存在为用户提供了更高的灵活性、控制和安全性。与使用公共镜像仓库相比,私有仓库使用户能够完全掌握自己的镜像生命周期。 首先,私有仓库允许…

力扣-盛最多水的容器

11.盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。 说明:你不能倾斜…

C语言程序设计——程序流程控制方法(二)

循环结构 while语句 while(表达式){代码块; }do{代码块; }while(表达式)while语句分为do-while和while两种,区别在于循环之前是不是先执行一次循环的内容,可以类似于i和i的关系,本质上来讲是相同的。当表达式为真时,则会执行一次…

超详细的 pytest 钩子函数 之初始钩子和引导钩子来啦

前几篇文章介绍了 pytest 点的基本使用,学完前面几篇的内容基本上就可以满足工作中编写用例和进行自动化测试的需求。从这篇文章开始会陆续给大家介绍 pytest 中的钩子函数,插件开发等等。 仔细去看过 pytest 文档的小伙伴,应该都有发现 pyte…

【数据结构 | 希尔排序法】

希尔排序法 思路ShellSort 思路 希尔排序法又称缩小增量法。希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。然后,取&#xff0c…

ospf-gre隧道小练习

全网可达,R5路由表没有其他路由器的路由条目 注:每个路由器都添加了自己的环回,如R1就是1.1.1.1 R1可以分别ping通与R2,R3,R4之间的隧道 R1路由表上有所有路由器环回的路由条目 R5路由表上没有其他路由器的路由条目 实现代码: 首先将各个接口IP配好 边上3个路由器:[R6][R7][R…

ES API 批量操作 Bulk API

bulk 是 elasticsearch 提供的一种批量增删改的操作API。 bulk 对 JSON串 有着严格的要求。每个JSON串 不能换行 ,只能放在同一行,同时, 相邻的JSON串之间必须要有换行 (Linux下是\n;Window下是\r\n)。bul…

【谭浩强C程序设计 学习辅导第3章】最简单的C程序设计——顺序程序设计(含详细源码)

文章目录 一、 顺序程序设计题的解题思路及注意事项解题思路注意事项 二、源码讲解第3章源码文件构成:main.c 文件内容说明chap3.c源码实现chap3.h声明头文件测试结果展示源码链接 说明:本学习辅导题适用于谭浩强教辅第四版。 一、 顺序程序设计题的解题…

Programming Abstractions in C阅读笔记:p246-p247

《Programming Abstractions in C》学习第68天,p246-p247总结,总计2页。 一、技术总结 本章通过“the game of nim(尼姆游戏)”,这类以现实生活中事物作为例子进行讲解的情况,往往对学习者要求比较高,需要学习者具备…

<软考高项备考>《论文专题 - 65 质量管理(4) 》

4 过程3-管理质量 4.1 问题 4W1H过程做什么为了评估绩效,确保项目输出完整、正确且满足客户期望,而监督和记录质量管理活动执行结果的过程作用:①核实项目可交付成果和工作已经达到主要干系人的质量要求,可供最终验收;②确定项目…

C# 静态代码织入AOP组件之肉夹馍

写在前面 关于肉夹馍组件的官方介绍说明: Rougamo是一个静态代码织入的AOP组件,同为AOP组件较为常用的有Castle、Autofac、AspectCore等,与这些组件不同的是,这些组件基本都是通过动态代理IoC的方式实现AOP,是运行时…

【Web】CTFSHOW PHP特性刷题记录(全)

知其然知其所以然,尽量把每种特性都详细讲明白。 目录 web89 web90 web91 web92 web93 web94 web95 web96 web97 web98 web99 web100 web101 web102 web103 web104 web105 web106 web107 web108 web109 web110 web111 web112 web113 web…

高级分布式系统-第12讲 分布式控制经典理论

控制器基础 分布式控制系统的设计,是指在给定系统性能指标的条件下,设计出控制器的控制规律和相应的数字控制算法。 PID控制器 根据偏差的比例(Proportional)、积分(Integral)、微分(Derivati…

工作压力测试

每个职场人都会遇到工作压力,在企业人力资源管理的角度来看,没有工作压力是人力资源的低效,适当的工作压力可以促使员工不断进取,然而每个人的抗压能力是不同的,同样的工作量和工作难度,不同的人在面对相同…

漏洞复现--GitLab 任意用户密码重置漏洞(CVE-2023-7028)

免责声明: 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…