Mybatis解释及Mybatis项目搭建

2023-11-09

一、什么是Mybatis

        MyBatis是一个持久层框架,属于JDBC的替代方案之一,他的前身是iBatis。

        它属于ORM关系型映射。

        ORM(O/R - Mapping 对象关系映射),是一种把内存中的对象保存到关系型数据库的技术。用它封装数据库访问的细节。采用元数据(XML)的方式来描述对象-关系(数据库表)的映射细节,可以使得ORM充当任何一个Java应用业务层到数据库之间的桥梁 。

二、为什么使用Mybatis

        MyBatis 几乎免除了(简化)JDBC中那些繁琐的工作(建立连接、PreparedStatement-预编译sql、设置占位符、获取结果集等一系列),可以让开发者更多的关注SQL语句本身。

三、Mybais的组成

1.核心接口和类(SqlSessionFactory 和 SqlSession)

        SqlSessionFactory

        1).是MyBatis中的核心对象,是数据库映射关系经过编译之后的内存镜像 。

        2).可以根据上层对象SqlSessionFactoryBuilder对象来进行创建 ;SqlSessionFactoryBuilder则可以通过核心(主)配置文件 或者Java代码定义好的配置类来构建。

        3).是线程安全的,它一旦被创建,在应用的运行期间都会存在,如果我们多次创建同一个数据库的SqlSessionFactory,会导致数据库资源被消耗殆尽。因此通常情况下,同一个数据库都只会对应一个SqlSessionFactory ,所以在构建SqlSessionFactory 实例时通常会使用单例模式 。

        4).作用就是用来创建SqlSession。

        SqlSession:

        1).是另一个核心对象,他是应用程序和持久层之间执行交互操作的单线程对象 。

        2).每一个线程都应拥有一个自己的SqlSession实例,并且该实例是不共享的,同时也是线程不安全的,SqlSession它的使用范围最好限制在一次请求或者一个方法中。绝对不能够把其放在一个类的静态字段(属性),注意使用SqlSession对象后,要注意关闭资源。

        3).作用主要是执行持久化操作。

2.核心(主)配置文件 mybatis.cfg.xml

        1).mybatis.cfg.xml是主配置文件 ,必须要放在resources目录下 。

        2).用于配置数据源,链接各种ORM映射文件,以及实体类别名、日志等.

3.SQL映射文件(mapper.xml)

        1).通常是用来映射持久层接口,因此需要映射文件和它所对应的接口同名 。

        2).在resources目录下,需要创建和接口(com.project.dao)所在包同名的文件夹,注意在resources目录下,如果创建目录时书写com.project.dao,此时时创建了一个名称为com.project.dao的目录,因此如需创建有层级关系的目录,需要用com/project/dao,此时才会创建出三个有层级关系的目录 。

四、使用Mybatis搭建项目

1.导入依赖(MyBatis两个和Mysql一个)

 

2.在项目中去加入主配置文件mybatis.cfg.xml(在此之前,实体类和持久接口以及数据库应该建立好),然后根据项目去修改主配置文件的内容

 

3.数据源设置

        特别注意:驱动,url(端口号,数据库),数据库密码。

4.映射文件所在的位置

        映射文件所在位置和持久接口在同一包下面--一般是书写持久接口所在的包 。

 


 5.导入映射文件

        1).导入映射文件前,需要在resources目录下,创建和持久接口所在包同名的目录,由于resources的特殊性,创建时用 -- / -- 表示创建的为层级目录,比如com/project/dao(创建的是com、project、dao,这三个有层级关系的目录) 。

        2).导入映射文件时,需要将映射文件和需要映射的持久接口保持同名,否则无法映射 。

        3).导入后,在映射文件mapper元素的namespace属性书写,持久接口全路径 。

        此时 我的接口和映射文件所在目录和名称保持一致 。

        随后就可在其中通过标签书写sql语句。

 

 

        这是我的文件结构

 

如有需要Mybatis配置文件的友友可以私聊我!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mybatis解释及Mybatis项目搭建 的相关文章

随机推荐

  • Diffusion Models 简单代码示例

    一 关于Diffusion 模型的简单介绍 首先diffusion模型和VAE Flow Gan等模型类似 均属于生成模型 可以和GCN CNN等其他深度学习网络相结合 完成特定的生成任务 如下图 基于 GAN 生成模型 基于 VAE 的生
  • 卷积核的类型及其作用

    目录 一 堆叠小卷积核 1 为什么要用大卷积核代替小卷积核 2 为什么堆叠小卷积核参数量要比大卷积核少 3 输入输出图片通道数一致时堆叠小卷积核参数量才更小 4 感受野计算 二 空洞卷积 能否让固定大小的卷积核看到更大范围的区域 三 非对称
  • c语言中的std模版用法,C++模板template用法小结(推荐)

    引言 模板 Template 指C 程序设计设计语言中采用类型作为参数的程序设计 支持通用程序设计 C 的标准库提供许多有用的函数大多结合了模板的观念 如STL以及IO Stream 函数模板 在c 入门中 很多人会接触swap int i
  • vue的安全隐患(一)

    vue安全方面的知识 第一原则永远不要使用不信任的模板 在vue中使用不信任的模板这等于允许在应用程序中执行任意的javascript代码 甚至更糟糕的是服务器可能会被攻破 比如在 template sertppp 不要这样做因为vue的模
  • 强化学习的几种环境介绍

    前言 对于强化学习相关的几种环境介绍 主要包括Mini world Gym maze Grid world gym minigrid Mini world https github com maximecb gym miniworld Mi
  • 用c语言设计加减乘除自动出题程序,用C语言编写一个简易计算器可实现加减乘除,连加连减,连乖连除....

    include include stdlib h define N 10 void fun int a b t char c scanf d a scanf c c scanf d b if c c c c c if c t a b if
  • 关于unique case和priority case语法

    SystemVerilog对于case casez casex语句新增了两个特殊的修饰符 unique及priority 其语法规则如下 unique case
  • 疫情信息获取。

    爬取目标 腾讯新闻 疫情数据 确定信息 在目标网页按F12 在全局数据中寻找 发现有目标数据 接下来在Network中寻找数据并在Headers中获得链接地址 也可以点击搜索查找 较为方便 省份数据和全球数据也是同样的方法 注意图二 最终确
  • 【JS逆向】之webpack逆向实战

    声明 本文只作学习研究 禁止用于非法用途 否则后果自负 如有侵权 请告知删除 谢谢 目标网站 aHR0cHM6Ly8xNTE0NjQ2LmNvbS9sb2dpbg 引言 webpack对于有研究过人的来说就是 难度并不是很高 但是因为web
  • xss过滤绕过方法总结

    xss注入常用语句 1 2 img src 3 img src 4
  • JS 将数组写入表单

    将数据写入表单 var rowData 1 2 3 function insertToForm rowData if rowData length lt 1 alert 没有数据 else var form formID for var i
  • C++中的类模板定义及实例化

    转载自Out man 文章目录 一 类模板定义及实例化 定义一个类模板 类模板实例化 二 类模板的成员函数 一 类模板定义及实例化 定义一个类模板 template
  • 关于C/C++运算符优先级问题探讨

    最近在知乎上看到一个c c 运算符连写的问题 引发了诸多网友的讨论 具体内容如下图 乍一看 这句代码很长 确实有些让人糊涂 尤其是学习过python的同学 对此写法不太理解 今天我们一起来说一说 优先级 在c语言的表达式中 如果存在多个运算
  • 第1章-爬虫简介(http请求)

    第1章 爬虫简介 一 通讯协议 二 网络模型 三 Http请求与响应 3 1 Http通信 3 2 Http请求 3 3 Http请求方法 四 几个概念 4 1 GET和POST 4 2 URL组成部分 4 3 User Agent 户代理
  • 基于Linux环境的PPPOE服务器搭建

    转载 https www imooc com article 50559 VMware ubuntu虚拟机上搭建PPPOE服务器 https blog csdn net rheostat article details 8069778
  • 随手记怎么样靠谱吗?随手记平台不触碰用户资金

    随着经济的快速发展和人们理财意识的增强 互联网理财在人们的日常生活中逐步普及 而随手记作为随手集团旗下集手机记账 财务规划 金融服务 社区投资者教育等功能于一体的个人财务管理和金融服务品牌 其推出的理财产品受到不少理财投资者的青睐 但是 随
  • 什么是渲染目标(render target)&& 渲染到纹理(Render To Texture, RTT)详解

    渲染到纹理 Render To Texture RTT 详解 RTT是现在很多特效里面都会用到的一项很基本的技术 实现起来很简单 也很重要 但是让人不解的是网上搜索了半天只找到很少的文章说这个事儿 不知道是因为太简单还是因为这项技术已经出现
  • docker安装觅思文档(mrdoc)

    mrdoc文档地址 https mrdoc fun doc 18 mrdoc项目地址 GitHub zmister2016 MrDoc mrdoc online document system developed based on pyth
  • STM32逆变器控制

    ADC引脚分配 直流电压 Vc1 PA0 Vc2 PA1 电网电压 U1 V1 W1 AD7323 PB3 PB4 PB5 逆变器输出电压 UCA UCB UCC AD7323 PB13 PB14 PB15 电容电流采样 ICa ICb I
  • Mybatis解释及Mybatis项目搭建

    一 什么是Mybatis MyBatis是一个持久层框架 属于JDBC的替代方案之一 他的前身是iBatis 它属于ORM关系型映射 ORM O R Mapping 对象关系映射 是一种把内存中的对象保存到关系型数据库的技术 用它封装数据库