本文由小千给大家分享小白如何入门Mybatis。

一、数据持久化概念和ORM原理

1、数据持久化:持久化是程序数据在瞬时状态和持久状态间的转换过程

2、ORM:编写程序的时候,以面向对象的方式处理数据。保存数据的时候却以关系型数据库的方式存储数据

3、ORM提供:

(1) 在持久化对象上执行基本的增、删、改、查操作

(2) 对持久化对象提供一种查询语言或者API

(3) 对象关系映射工具

(4) 提供与事务对象交互、执行检查、延迟加载以及其他优化功能

二、MyBatis的概念以及优点特性

1、简单易学:没有任何第三方依赖,本身很简单

2、灵活:不会影响编程或数据库的设计,sql写在xml中,便于统一管理优化

3、解耦:将业务逻辑和数据访问逻辑分离,设计清晰,便于维护。Sql与代码分离,方便维护

三、理解核心类的作用域和生命周期,核心配置

1、SqlSessionFactoryBuilder

(1) 生命周期及作用域:用过即丢,生命周期只存在方法体内

(2) 作用:可重用其来创建多个 SqlSessionFactory 实例,负责构建SqlSessionFactory,并提供多个build方法的重载

2、SqlSessionFactory

(1) 生命周期及作用域:生命周期与应用的生命周期相同,存在于整个应用运行时,并且同时只能存在一个对象实例(单例)。作用域为Application

作用:创建SqlSession实例

参数:true:关闭事务、false开启事务(默认)

注:当开始事务的时候,对表做增删改操作时,需要提交事务:commit

3、SqlSession

(1) 生命周期及作用域:一个request请求期间,线程级别

(2) 作用(两种):

① 通过SqlSession实例直接运行映射的sql语句

② 基于Mapper接口方式操作数据

1、mybatis-config.xml系统核心配置文件

2、Mapper.xml:SQL映射文件

四、搭建MyBatis环境

mybatis-config.xml系统核心配置文件:

(1) 头文件

(1) 根元素:<configuration></configuration>

(2) 配置元素(要放在根元素内):

① properties 可以配置在Java 属性配置文件中

② settings 修改 MyBatis 在运行时的行为方式:9

③ typeAliases 为 Java 类型命名一个别名(简称)

④ typeHandlers 类型处理器

⑤ objectFactory 对象工厂

⑥ plugins 插件

⑦ environments 环境

⑧ environment 环境变量

  1. transactionManager 事务管理器

  2. dataSource 数据源

⑨ mappers 映射器

五、掌握全局配置文件结构内容

1、properties配置两种方式:

(1) 利用外部文件:database.properties

(2) 直接在xml文件中配置数据库信息

2、settings元素:(共有9个,自行百度浏览下其他得属性)

(1) cacheEnabled:对在此配置文件下得所有cache(缓存)进行全局性开/关设置(true/false),默认为true

(2) LazyLoadingEnabled:全局性设置懒加载。如果设为”false”,则所有相关联得都会被初始化加载:(true/false),默认为true

3、typeAliases元素:设置映射文件返回结果别名

4、environments环境:development开发环境 test测试环境

5、environment环境变量,id指向环境

6、transactionManager

<transactionManager type=”JDBC”/>


7、dataSource

type:

(1)UNPOOLED:这个数据源的实现只是每次被请求时打开和关闭链接

(2)POOLED:这种数据源的实现利用”池”的概念将JDBC连接对象组织起来

(3)JNDI:自行百度

8、mappers:映射器,配置加载映射文件

六、Mapper映射器:

1、头文件

2、根元素:

3、子元素:select、insert、delete、update、resultMap

本文来自千锋教育,转载请注明出处。

小白如何入门Mybatis?这里有答案相关推荐

  1. Java技术分享:小白如何入门Mybatis?

    本文由小千给大家分享小白如何入门Mybatis. 一.数据持久化概念和ORM原理 1.数据持久化:持久化是程序数据在瞬时状态和持久状态间的转换过程 2.ORM:编写程序的时候,以面向对象的方式处理数据 ...

  2. CV学术笔记(一)从小白开始入门科研:学习基础理论

    前言 这两个月开始学习深度学习与计算机视觉,从懵懵懂懂到初入门槛,从完全不懂科研的小白到复现第一篇论文(2023.4.1日完成MobileNet复现与Resnet复现)虽然磕磕绊绊,也算收获良多,在这 ...

  3. 零基础编程入门python视频-Python编程零基础小白快速入门完整全系列精品课

    1. 课程咨询加老师助理微信:助理1微信: chenjinglei88 ,助理2微信: omf6757 2. 决定购买并想得到陈敬雷老师亲自指导(课程或自己项目难题均可)加老师微信: chenjing ...

  4. 行号 设置vim_Vim从小白到入门

    前言 Vim 是从 vi 发展出来的一个文本编辑器.代码补全.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.和 Emacs 并列成为类 Unix 系统用户最喜欢的编辑器.而 Windo ...

  5. 【非科班告诉你】前端自学从小白到入门

    先明确一个概念什么才算入门?我的定位是能找到一份前端工作才叫入门.接下来我制定了一个自学前端的学习路径,避免一些自学的朋友走弯路,大概能在4个月左右从小白到入门,如果你有基础更好了. 第一阶段,牛刀小 ...

  6. 零基础小白如何入门前端?以下这几点一定是你需要的

    随着近些年前端行业的崛起,前端人才也越来越供不应求.不少人都看到这个行业的巨大发展前景,因此目前零基础开始学习前端的人也越来越多了.那么,零基础小白如何入门前端呢?为了让大家快速入门前端,本文将从前端 ...

  7. 从编程小白到入门码农的五个途径

    一.找人带(推荐度:四星半,可行性:两星) 对于编程小白,能找到老鸟带是上升最快的途径.有些新人连设置环境变量和安装必要的程序都不会,还没摸到编程的大门已耗尽了所有的耐心.另外,老鸟还会教你一些学校学 ...

  8. 快速入门mybatis(查询、添加日志、插入)

    快速入门mybatis(查询.添加日志.插入) 参考学习视频网址:https://www.bilibili.com/video/BV185411s7Ry?p=9&spm_id_from=pag ...

  9. 小白大学生学习MyBatis(二)

    小白大学生学习MyBatis(二) 1 . 接(一)解释测试代码 主要类的介绍 https://blog.csdn.net/hjs_75187712/article/details/118344894 ...

最新文章

  1. 2018/02/06
  2. golang 获取公网ip 内网ip 检测ip类型 校验ip区间 ip地址string和int转换 判断ip地区国家运营商
  3. VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池
  4. D3js(五):tooltips
  5. windows.onload和body的onload属性的区别
  6. 我也发软件开发团队的思考(侧重点是人员)
  7. 在IE7 中遇到的几个小问题,有解决方案
  8. 声明式事务java_Spring声明式事务管理源码解读之事务开始
  9. 代码吃鸡:Python-Robocode
  10. 孪生网络图像相似度_图像相似度比对
  11. Warez出品的精品动画
  12. 小米笔记本android开发,小米笔记本将预装自主研发的MIOS系统!
  13. 12套员工激励方法和108个技巧
  14. Android强大的控件——RecyclerView
  15. IIS 7无法写入配置文件C:\Windows\System32\inetsrv\config\applicationHost.config
  16. 升级openssh后出现问题(kex_exchange_identification: client sent。。。。。)
  17. 必应壁纸爬取 def
  18. Android 常用颜色列表
  19. 泰坦以太(以太流说) titan_ysl 2020.01.27
  20. 性能优化系列(五)网络性能优化

热门文章

  1. python中如何求列表中的和_python实现求解列表中元素的排列和组合
  2. recycleview 嵌套高度问题_RecyclerView嵌套子RecyclerView无法正常显
  3. Spring Security OAuth2——自定义OAuth2第三方登录(Gitee)并与UsernamePassword登录关联解决方案
  4. JAVA——Okhttp封装工具类
  5. 《数据结构与算法》实验报告——二叉树的遍历
  6. 2019牛客暑期多校训练营(第八场)
  7. 安卓CheckBox实现单选
  8. react的bind(this)
  9. 来说一说你对锁都怎么分类?
  10. Spark与Flink:对比与分析