mybatis笔记-1 mybatis环境配置+介绍

笔记-mybatis之openSession() mybatis之openSession() 前面我们已经介绍到了mybatis的简单应用以及mybatis是怎么创建SqlSessionFactory的 链接: mybatis初识 链接: mybatis之SqlSessionFactory 回到我们代码 package test; import entity.Cust; import lombok.extern.slf4j.Slf4j; imp... 阅读详情

mybatis概述

mybatis 是一个优秀的基于 java 的持久层框架,是apache下的顶级项目。mybatis托管到goolecode下,再后来托管到github下(https://github.com/mybatis/mybatis-3/releases)。

它内部封装了 jdbc,使开发者只需要关注 sql 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。

mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中
sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并返回。

采用 ORM 思想解决了实体和数据库映射的问题,对 jdbc 进行了封装,屏蔽了 jdbc api 底层访问细节,使我们不用与 jdbc api 打交道,就可以完成对数据库的持久化操作。

为了我们能够更好掌握框架运行的内部过程,并且有更好的体验,下面我们将从自定义 Mybatis 框架开始来学习框架。此时我们将会体验框架从无到有的过程体验,也能够很好的综合前面阶段所学的基础。

mybatis相对JDBC的好处

1、使用传统方式JDBC访问数据库:

(1)使用JDBC访问数据库有大量重复代码(比如注册驱动、获取连接、获取传输器、释放资源等)

(2)JDBC自身没有连接池,会频繁的创建连接和关闭连接,效率低

(3)SQL是写死在程序中,一旦修改SQL,需要对类重新编译。

(4)对查询SQL执行后返回的ResultSet对象,需要手动处理,有时会特别麻烦

2、使用mybatis框架访问数据库:

(1)Mybatis对JDBC对了封装,可以简化JDBC代码。

(2)Mybatis支持连接池(也可以配置其他的连接池),因此可以提高程序的效率

(3)Mybatis是将SQL配置在mapper文件中,修改SQL只是修改配置文件,类不需要重新编译。

(4)对查询SQL执行后返回的ResultSet对象,Mybatis会帮我们处理,转换成Java对象。

mybatis 介绍

mybatis是一个持久层的框架,是apache下的顶级项目。

mybatis托管到goolecode下,再后来托管到github下(https://github.com/mybatis/mybatis-3/releases)。

mybatis让程序员将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句。

mybatis可以将向 preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象。(输出映射)

环境配置

需要的包:jdbc包+

jdbc驱动:JDBC Driver fot MySQL版:https://www.mysql.com/products/connector/

mybatis下载地址:https://github.com/mybatis/mybatis-3/releases ,下的是mybatis-3.5.2.zip。

将核心包复制到工程里面,然后添加到类路径。

框架原理

mybatis框架

mybatis框架执行过程

1、配置mybatis的配置文件,SqlMapConfig.xml(名称不固定)

2、通过配置文件,加载mybatis运行环境,创建SqlSessionFactory会话工厂(SqlSessionFactory在实际使用时按单例方式)

3、通过SqlSessionFactory创建SqlSession。SqlSession是一个面向用户接口(提供操作数据库方法),实现对象是线程不安全的,建议sqlSession应用场合在方法体内。

4、调用sqlSession的方法去操作数据。如果需要提交事务,需要执行SqlSession的commit()方法。

5、释放资源,关闭SqlSession

mybatis开发dao的方法

1.原始dao 的方法

  • 需要程序员编写dao接口和实现类
  • 需要在dao实现类中注入一个SqlSessionFactory工厂

2.mapper代理开发方法(建议使用)

只需要程序员编写mapper接口(就是dao接口)。
程序员在编写mapper.xml(映射文件)和mapper.java(接口)需要遵循一个开发规范:

  • mapper.xml中namespace就是mapper.java的类全路径。
  • mapper.xml中statement的id和mapper.java中方法名一致。
  • mapper.xml中statement的parameterType指定输入参数的类型和mapper.java的方法输入参数类型一致
  • mapper.xml中statement的resultType指定输出结果的类型和mapper.java的方法返回值类型一致。

SqlMapConfig.xml配置文件:可以配置properties属性、别名、mapper加载。

输入映射和输出映射

  • 输入映射:
    • parameterType:指定输入参数类型可以简单类型、pojo、hashmap。
    • 对于综合查询,建议parameterType使用包装的pojo,有利于系统扩展。
  • 输出映射:
    • resultType:查询到的列名和resultType指定的pojo的属性名一致,才能映射成功。
    • reusltMap:可以通过resultMap 完成一些高级映射。如果查询到的列名和映射的pojo的属性名不一致时,通过resultMap设置列名和属性名之间的对应关系(映射关系)。可以完成映射。
      • 高级映射:
        将关联查询的列映射到一个pojo属性中。(一对一)
        将关联查询的列映射到一个List中。(一对多)

动态sql

  • 动态sql:(重点)
    • if判断(掌握)
    • where
    • foreach
    • sql片段(掌握)
HFSS实战项目——基片集成波导(SIW)带通滤波器 设计了一款直接耦合的SIW带通滤波器, 采用直接耦合的形式, 工作频率覆盖19~21 GHz, 通带内插入损耗小于1.5 dB, 回波损耗小于-20 dB, 带外抑制特性良好. 阅读详情

相关推荐

【嵌入式】树莓派部署NCNN的YOLOv5模型

树莓派部署NCNN框架的YOLOv5模型

Ace_Spade的博客 3781

mybatis基础:sqlsession、连接配置、db配置加载顺序等

mybatis的Sqlsession、配置加载顺序、基本 CRUD使用、高级查询方式、事务、java bean别名等

yinggenan的博客 1404

计组实验4 控制冒险与分支预测

目录前言实验内容背景知识分支预测技术⭐阻塞周期计算方法不开启 BTB开启 BTBpart 1 矩阵乘法与优化未开启 BTB 的分析开启 BTB 的分析part 2 设计代码使 BTB 无效part 3 循环展开优化矩阵乘法未开启 BTB开启 BTB结束语结论 前言 上一篇博客:计组实验3 mips冒险之流水线冒险 摸了半个月了。。。咕咕咕 今天来写计组实验 4 这个实验非常简单,就是有点难。 这个实验比较容易算错,或者是被模拟器出人意料的结果搞的神神叨叨的,所以今天来记录并且详细分析该实验。 注:请务必阅

AKGWSB 's blog 5666

Mybatis(一)—— 初识MyBatis

1. 从JDBC说起 1.1 JDBC的问题 先看一个JDBC的程序。 jdbc.properties driver=com.mysql.jdbc.Driver jdbcUrl=jdbc:mysql://192.168.100.120:3306/Antennapara?autoReconnect=true user=monica password=*** JDBCUtils.java import java.io.InputStream; import java.sql.Connection; i

蜡笔小达新的博客 1022

告别有线:用PVE直通无线网卡,打造一台真正的‘无线’Win10软路由/测试机

本文详细介绍了如何通过PVE直通无线网卡技术,构建全无线Win10软路由或测试机。从硬件选型、PVE环境配置到PCIe和USB双模直通技术,逐步指导实现Wi-Fi AP和蓝牙连接功能,为家庭实验室和小型办公环境提供灵活高效的网络解决方案。

weixin_28683689的博客 586

电赛MSP430F5529之超声波测距+OLED 显示(含主要代码)

目录 前言 一、超声波介绍 二、部分代码 三、总结 题外话: 前言 哎,又双叒叕,电赛延期了,看起来像是遥遥无期,但是肯定要考虑大局,大家就继续抓紧时间学习知识,巩固自己的知识,更进一步。好了,今天主要是继承上一篇博文(OLED显示)写的,主要是写超声波测距的(US-015) 一、超声波介绍 利用TI公司的MSP430F5529单片机+超声波模块+OLED 实现 这里主要是利用单片机定时器的捕获功能来捕获超声波高电平持续时间,再计算得到距离,最后再在OLED 屏幕上显示出来,上图

不说二话的自家人的博客 1万+

MyBatis环境搭建(1)--MyBatis基本配置

MyBatis应用详解(1)—Mybatis基本配置 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!--数据库配置资源文件位置-->

qq_42223933的博客 214

瑞芯微RK3588平台YOLOv8Pose模型RKNN部署与C++优化实战:从模型转换到高效推理的全流程指南-附源码

错误码 | 原因 | 解决方案 || -1001 | ONNX算子不支持 | 升级RKNN SDK至最新版 || -2003 | 量化校准数据不足 | 增加校准图片至500张 || -3005 | 输入尺寸不匹配 | 固定模型输入尺寸为640x640 || 资源消耗 | CPU 35% | NPU 90% |

m0_64661770的博客 988

Mybatis-Plus之分页问题

Mybatis-Plus之分页问题 最近写毕设用到了Mybatis-plus的分页机制【Pageable】,看了官网的分页插件介绍,但总觉得还是很模糊,就自己实现了一个自定义的分页【无xml配置版本】。 附官网地址以供参考:https://mp.baomidou.com/guide/page.html 首先要新建一个Configuration包,在里面建一个MybatisPlus配置类 返回一个分页拦截器 //Spring boot方式 @Configuration @MapperScan("com.bao

吉吉不是古古的博客 1206

408 | 408常用计算公式与方法 —— 计组篇 汇总

408常用计算公式与方法 —— 计算机组成原理篇 汇总

"You are worthy! You can do it!" 4649

手把手教你学simulink实例--基于Simulink的船舶发电柴油机建模与健康状态研究

船舶发电柴油机是现代船舶电力系统的核心设备,为船舶提供稳定的电能供应。然而,由于长期运行在复杂的海洋环境中,船舶发电柴油机容易受到磨损、腐蚀和疲劳等损伤的影响,导致其性能下降甚至发生故障。因此,对船舶发电柴油机进行建模和健康状态监测具有重要意义。本项目旨在使用MATLAB/Simulink平台,建立船舶发电柴油机的动力学模型,并通过仿真分析其健康状态,预测潜在故障,从而提高船舶运行的安全性和经济性。

MHD0815的博客 1323

使用Mybatis时请注意这两个参数,否则会让你的数据库连接爆掉

     上次发帖是在跳槽后,今天为止已经在新公司工作了两个星期了,感受什么的,我另外写文章再谈,言归正传,讲正事~~!      目前正在开发一个产品的服务器端代码,持久层我选择了Mybatis3(也就是原来的ibatis)作为框架,之所以选择他理由就是我觉得Hibernate搞起来貌似很复杂,我不太会用,哈哈(上家公司留下的阴影,用Hibernate搞得我想死)。上周完成了大部分代码的开发工作...

白强 1903

【系统分析师】2026年-上半年真题:综合知识-答案及详解(75题完整回忆版)

系统分析师考试备考指南(2026上半年机考) 考试安排: 2026年5月23日举行,分三科连考: 综合知识+案例分析(08:30-12:30,240分钟) 论文(14:30-16:30,120分钟) 科目详情: 综合知识:75道单选(含5道英文题),满分75分,45分及格。 案例分析:5选3主观题,满分75分,45分及格。 论文:4选1论述题,满分75分,45分及格。 重点题型解析: 软件工程:结构化分析以数据字典为核心(题1)。 概率统计:独立事件概率计算(题2,三人解题概率≈0.9)。 数据库安全:DB

数据知道的博客 1888

Java毕设项目读书笔记共享平台(java+VUE+Mybatis+Maven+Mysql)

Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。java + mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。2. 前端:vue+css+javascript+jQuery+easyUI+highcharts。Java毕设项目读书笔记共享平台(java+VUE+Mybatis+Maven+Mysql)

计算机程序设计 181

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java毕设项目云笔记管理系统(java+VUE+Mybatis+Maven+Mysql)

Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。JAVA + mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。2. 前端:vue+css+javascript+jQuery+easyUI+highcharts。Java毕设项目云笔记管理系统(java+VUE+Mybatis+Maven+Mysql)

rg100的博客 228

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

[JAVA]MyBatis环境配置介绍

什么是MyBatis环境配置?MyBatis是基于JDBC对数据库进行操作,在我们进行数据操作时,我们需要告诉MyBatis我们连接哪个数据库,ip地址,数据库名称,用户名密码等。以此来进行环境配置

2301_79757798的博客 698

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Mybatis 的插件,环境配置,映射器

如果你想做的不仅仅是监控方法的调用,那么你最好相当了解要重写的方法的行为。例如,开发、测试和生产环境需要有不同的配置;– 这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。上面的插件将会拦截在 Executor 实例中所有的 “update” 方法调用, 这里的 Executor 是负责执行底层映射语句的内部对象。通过 MyBatis 提供的强大机制,使用插件是非常简单的,只需实现 Interceptor 接口,并指定想要拦截的方法签名即可。

or77iu_N的博客 2890

MyBatis(环境配置+基本CRUD)

3.父子模块环境配置 1.创建maven父项目 2.mybatis-config.xml配置mybatis配置文件(名字任意,放在resources下) 3.Monster.java映射表结构的bean 属性名与表的列名保持一致 需要有无参构造器(反射使用) 4.Mapper的配置 1.MonsterMapper.java操作Monster表的接口 2.MonsterMapper.xml与MonsterMapper相对应的xml 5.修改mybatis-config.xml配置要管理的Mapp

Sun的个人博客 3382

MyBatis实战指南(三)MyBatis常用配置详解(XML配置,环境配置,类型别名,属性与映射器)

本文深入解析MyBatis核心配置体系,详细介绍了XML配置文件的结构与功能。MyBatis的配置文件(mybatis-config.xml)作为框架的核心说明书,包含properties(外部属性配置)、settings(全局行为调整)、environments(数据库环境配置)、typeAliases(类型别名简化)和mappers(SQL映射注册)五大核心模块。文章通过具体示例展示了如何配置数据库连接、开启驼峰命名映射、定义多环境切换策略,以及简化Java类引用和注册SQL映射文件的最佳实践。掌握这些

2402_83322742的博客 3043

MyBatis—环境配置

介绍了 MyBatis 的定义及环境配置~~(通俗易懂哦)

m0_74365243的博客 1995

Mybatis的环境配置(environments)

环境配置environments 事务管理器(transactionManager) 数据源(dataSource) 环境配置environments 直接看官网Mybatis官网 官网也说废话:不过要记住:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。 我们的连接例子: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configur..

林高禄 5681

【MyBatis】环境配置(environments)

MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中, 现实情况下有多种理由需要这么做。例如,开发、测试和生产环境需要有不同的配置;或者想在具有相同 Schema 的多个生产数据库中使用相同的 SQL 映射。还有许多类似的使用场景。。所以,如果你想连接两个数据库,就需要创建两个 SqlSessionFactory 实例,每个数据库对应一个。为了指定创建哪种环境,只要将它作为可选的参数传递给 SqlSessionFactoryBuilder 即可。

九师兄 516

MyBatis环境配置

MyBatis环境配置 MyBatis框架 MyBatis 是一个 ORM 框架, 用于操作数据库, 底层是对 jdbc 进行的封装。 MyBatis 的前身是 iBatis, 是 Apache 下的一个开源项目. 现在被迁移到了 GitHub 上. 中文网址: http://www.mybatis.org/mybatis-3/zh/getting-started.html MyB...

秋阴的博客 271

Mybatis笔记1

helloworld: 1、接口式编程 原生: Dao ====> DaoImpl :每一个dao的方法都需要实现 mybatis: Mapper ====> xxMapper.xml 2、SqlSession代表和数据库的一次会话,用完必须关闭 3、SqlSession和connection一样她都是非线程安全。每次使用都应该去获取新的对象。 4、mapper接口没有实现类,但是mybatis会为这个接口生成一个代理对象。(将接口和xml进行绑定) EmployeeMapper em

weixin_43871309的博客 1387

MyBatis环境配置中遇到的问题

提示:以下是本篇文章正文内容,下面案例可供参考MyBatis是一个ORM(Object/Relation Mapping,即对象关系映射)框架,是一个支持普通SQL查询、存储过程以及高级映射的持久层框架,它消除了几乎所有的JDBC代码和参数的手动设置以及对结果集的检索,使用简单的XML或注解进行配置和原始映射,将接口和Java的POJO映射成数据库中的记录,是的Java开发人员可以使用面向对象编程思想来操作数据库。哈哈。

qq_52340036的博客 1194

MyBatis 菜鸟教程 1 环境配置

MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Map

菜鸟教程 1万+
上一篇: ubuntu配置远程桌面
下一篇: mybatis笔记-2、JDBC总结
hancoder
博客等级 码龄9年 4135粉丝 167原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值