MyBatis学习笔记

2023-10-31

MyBatis是一款优秀的持久层框架,用于简化JDBC

MyBatis

持久层

负责把数据保存到数据库的那一层
JavaEE三层架构:表现层(页面展示)、业务层(逻辑处理)、持久层(对数据持久化保存到数据库中)

框架

框架是一个半成品软件,是一套可重用的、通用的、软件基础代码模型
在框架的基础上构建软件编写更加高效、规范、通用、可扩展
MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果的工作。
MyBatis可以通过简单的XML或者注解来配置和映射原始类型、接口和Java POJO(Plain Old Java Objects,普通老式java对象)为数据库中的记录

MyBatis官网
快速入门MyBatis
案例:

1.创建数据库、emp表、添加数据
2.创建模块,导入坐标
3.编写MyBatis核心配置文件  ----  替换连接信息 解决硬编码问题(连接mysql,解决JDBC中将连接信息写入代码中的硬编码问题)
4.编写sql 映射文件  ---- 统一管理sql语句,解决硬编码问题(sql语句)
5.编码
	(1)定义pojo类(对应emp表)
	(2)加载核心配置文件,获取SqlSessionFactory对象
	(3)获取SqlSession对象,执行sql语句
	(4)释放资源

根据官网入门提示完成快速入门
部分代码

public class MyBatisDemo {
    /*
    * MyBatis快速入门
    *
    * */
    public static void main(String[] args) throws IOException {
        //1.加载mybatis的核心配置文件,获取SqlSessionFactory
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //2.获取SqlSession对象,用它来执行sql
        SqlSession sqlSession=sqlSessionFactory.openSession();
        //3.执行sql语句
        List<User> users= sqlSession.selectList("test.selectAll");
        System.out.println(users);
        //4.释放资源
        sqlSession.close();
    }
}

Mapper代理开发

目的:

解决原生方式中的硬编码
简化后期执行sql
使用Mapper代理完成入门案例
1.定义sql映射文件同名的Mapper接口,并且将Mapper接口和sql映射文件放置在同一目录下
2.设置sql映射文件的namespace属性为Mapper接口全限定名
3.在Mapper接口中定义方法,方法名就是sql映射文件中sql语句的id,并保持参数类型返回值类型一致
4.编码
    (1)通过SqlSession的 getMapper方法获取Mapper接口的代理对象
    (2)调用对应的方法完成sql的执行
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MyBatis学习笔记 的相关文章

随机推荐

  • 基于深度学习的变化检测算法实现

    我是研究生期间研究主要研究SAR影像的变化检测 这是一段简单的基于深度学习的变化检测方法 以CNN实现 首先说下基于深度学习的变化检测任务的思路 制作训练样本 gt 训练模型 gt 使用训练的模型遍历图片中每个像元得出结果 1 筛选训练样本
  • spring.ftl

    lt ftl strip whitespace true gt lt spring ftl This file consists of a collection of FreeMarker macros aimed at easing so
  • css中垂直对齐常用的几种方法

    一 行高 line height 法 如果要垂直居中的只有一行或几个文字 那它的制作最为简单 只要让文字的行高和容器的高度相同即可 比如 p height 30px line height 30px width 100px overflow
  • Angularjs理解二

    1 dom加载完毕 找寻ng app 先从上到下找相关的指令 然后分两阶段执行 先找到所有的指令 完成编译 得到一个个链接函数 最后在链接到一个个controller上 还是边编译边链接 先执行 injector invoke rootSc
  • 光耦PC817

    光耦一共4个引脚 两个输入 两个输出 输入接5v和gnd 5v接时加100欧姆电阻 输出不大于35v电压 这时输出端通路 只是通路 不是短路 转载于 https www cnblogs com judes p 5686414 html
  • PCA主成分分析(入门计算+深入解析)(一)

    PCA主成分分析 入门 深入 最大方差理论 几何意义 Principal components analysis 转载请注明 云南省高校数据化运营管理工程研究中心博客http blog csdn net m0 37788308 articl
  • Python解决相对路径问题

    学习Python中 一直被相对路径困扰 只能使用绝对路径 解决方法 加上下面代码 import os sys os chdir sys path 0 这个问题到现在也没有搞清楚 因为在命令行直接敲命令运行py文件可以直接使用相对路径 而我在
  • 浅谈三目运算符(c++)

    目录 什么是三目运算符 三目运算符怎么用 基本用法 进阶用法 注意事项 相关题目 B2035 判断数正负 B2037 奇偶数判断 B2052 简单计算器 什么是三目运算符 三目运算符是分支结构中的一种运算 根据不同的条件 执行不同的操作并返
  • win10家庭版解决无法进入本地组策略编辑器问题

    win10家庭版无法进入本地组策略编辑器 现象 运行框中输入 gpedit msc 提示 Windows找不到文件gpedit msc 解决办法 一 桌面新建一个文本文档 输入以下代码后保存文档 echo off pushd dp0 dir
  • 【华为OD机试真题 Python】最优高铁城市修建方案(200分)

    前言 本专栏将持续更新互联网大厂机试真题 并进行详细的分析与解答 包含完整的代码实现 希望可以帮助到正在努力的你 关于大厂机试流程 面经 面试指导等 如有任何疑问 欢迎联系我 wechat steven moda email nansun0
  • python读取Java配置文件properties配置文件

    python没有专门处理properties格式的包 只有处理标准的ini格式的包 所以需要自己写一个python程序来处理 class Properties object def init self fileName self fileN
  • Hugging Face 的 Transformers 库快速入门 (一)开箱即用的 pipelines

    注 本系列教程仅供学习使用 由原作者授权 均转载自小昇的博客 文章目录 前言 开箱即用的 pipelines 情感分析 零训练样本分类 文本生成 遮盖词填充 命名实体识别 自动问答 自动摘要 这些 pipeline 背后做了什么 使用分词器
  • 网络流(最大流)基础入门

    好不容易大概搞懂了网络流 写个博客巩固一下 盗了点图 请图主原谅 定义 网络流与最大流 网络流是指给定一个有向图 和两个点 源点S和汇点T 点之间有连边 每条边有一个容量限制 可以看作水管 网络流就是指由S点流到T点的一个可行流 最大流就是
  • 金蝶生成凭证模板_【干货】金蝶云ERP教你凭证模版的引入引出

    概述 K 3Cloud凭证模版一直反馈比较多的就是希望可以增加模版引入引出的功能 因为在项目实施过程中 上线前的在测试环境配置过的凭证模板 希望通过凭证模版引入功能轻松移植到正式环境 这样可以快速满足客户要求 缩短实施周期 目前K 3Clo
  • 正则表达式匹配邮箱账号

    现在许多网站都采用了通过邮箱账号来注册用户名的方式 一来可以避免重复 而来安全性也得到保证 一举两得 很不错 而最近HCI的官网也要重构了 部门一女生在写注册信息的表单验证的时候遇到了许多问题 其中一个就是邮箱的验证 老实说 一开始俺就觉得
  • 迷宫游戏,测试你适合做的工作

    迷宫的道路是联通的 从起点出发的向各个方向均能到达不同的出口 按照箭头起始方向从起点开始进入迷宫 当遇到岔路口时 按照自己的直觉选择前进的方向 最终抵达迷宫出口 各出口相对应的字母将解释你的性格特点和适合从事的工作 注意了 这里的字母是按照
  • 线程及线程的同步互斥

    目录 1 线程的简单介绍 2 同步互斥的概念 3 为什么要进行线程的同步互斥 4 信号量 5 互斥量 6 条件变量 1 线程的简单介绍 1 进程 在讲到线程之前 我们应该先了解一下进程的概念 进程 Process 是指计算机中已运行的程序
  • FRP内网穿透(linux->windows)

    使用背景 由于内网环境所在的电脑无法通过公网暴露访问 而使用类似于向日葵等其他代理工具 又存在一定的延迟卡顿 因此 决定待用Frp的内网穿透的功能 来实现借由公网服务器代理访问内网所在的电脑 原理 frp 主要由 客户端 frpc 和 服务
  • u盘魔术师给服务器装系统,U盘魔术师怎么装系统 U盘魔术师USM制作PE启动盘方法...

    U盘魔术师是一个很好用的装系统的工具 并且可以利用USM制作PE启动盘 很多用户都不太了解具体的方法 其实也非常的简单 下面小编就来给大家介绍一下U盘魔术师怎么装系统 赶紧来看看吧 U盘魔术师怎么装系统 U盘魔术师体积较大1G多如果是小水管
  • MyBatis学习笔记

    MyBatis MyBatis Mapper代理开发 MyBatis是一款优秀的持久层框架 用于简化JDBC MyBatis 持久层 负责把数据保存到数据库的那一层 JavaEE三层架构 表现层 页面展示 业务层 逻辑处理 持久层 对数据持