跟老杜从零入门MyBatis到架构思维(二)MyBatis入门程序

Mybatis从入门到精通 | 动力节点老杜 深入理解mybatis,这一篇就够了。 看动力节点mybatis课程的学习笔记。 阅读详情

MyBatis入门程序

只要你会JDBC,MyBatis就可以学。

2.1 版本

软件版本:

  • ●IntelliJ IDEA:2022.1.4
  • ●Navicat for MySQL:16.0.14
  • ●MySQL数据库:8.0.30

组件版本:

  • ●MySQL驱动:8.0.30
  • ●MyBatis:3.5.10
  • ●JDK:Java17
  • ●JUnit:4.13.2
  • ●Logback:1.2.11

配合视频教程观看,更易学习理解,课程讲解从Mybatis的一些核心要点与实战中的运用,一直过渡到MyBaits源码,由表及里的代入架构思维。一步一案例,一码一实操。从简单到深入,从实战到源码,MyBatis重点、难点、考点一网打尽。

相关的学习资料给大家备好了

​​点这里!​​

2.2 MyBatis下载

 

  • 将框架以及框架的源码都下载下来,下载框架后解压,打开mybatis目录

通过以上解压可以看到,框架一般都是以jar包的形式存在。我们的mybatis课程使用maven,所以这个jar我们不需要。

官方手册需要。

2.3 MyBatis入门程序开发步骤

●写代码前准备:

  • 准备数据库表:汽车表t_car,字段包括:

■id:主键(自增)【bigint】
■car_num:汽车编号【varchar】
■brand:品牌【varchar】
■guide_price:厂家指导价【decimal类型,专门为财务数据准备的类型】
■produce_time:生产时间【char,年月日即可,10个长度,'2022-10-11'】
■car_type:汽车类型(燃油车、电车、氢能源)【varchar】

  • 使用navicat for mysql工具建表

■

  • 使用navicat for mysql工具向t_car表中插入两条数据,如下:

■

  • 创建Project:建议创建Empty Project,设置Java版本以及编译版本等。

■

■

  • 设置IDEA的maven

■

  • 创建Module:普通的Maven Java模块

●步骤1:打包方式:jar(不需要war,因为mybatis封装的是jdbc。)
●步骤2:引入依赖(mybatis依赖 + mysql驱动依赖)
●步骤3:在resources根目录下新建mybatis-config.xml配置文件(可以参考mybatis手册拷贝)
注意1:mybatis核心配置文件的文件名不一定是mybatis-config.xml,可以是其它名字。
注意2:mybatis核心配置文件存放的位置也可以随意。这里选择放在resources根下,相当于放到了类的根路径下。
●步骤4:在resources根目录下新建CarMapper.xml配置文件(可以参考mybatis手册拷贝)
注意1:sql语句最后结尾可以不写“;”
注意2:CarMapper.xml文件的名字不是固定的。可以使用其它名字。
注意3:CarMapper.xml文件的位置也是随意的。这里选择放在resources根下,相当于放到了类的根路径下。
注意4:将CarMapper.xml文件路径配置到mybatis-config.xml:
●步骤5:编写MyBatisIntroductionTest代码
注意1:默认采用的事务管理器是:JDBC。JDBC事务默认是不提交的,需要手动提交。
●步骤6:运行程序,查看运行结果,以及数据库表中的数据
○

 ○

2.4 关于MyBatis核心配置文件的名字和路径详解

●核心配置文件的名字是随意的,因为以下的代码:
●核心配置文件必须放到resources下吗?放到D盘根目录下,可以吗?测试一下:
将mybatis-config.xml文件拷贝一份放到D盘根下,然后编写以下程序:
以上程序运行后,看到数据库表t_car中又新增一条数据,如下(成功了):

经过测试说明mybatis核心配置文件的名字是随意的,存放路径也是随意的。
虽然mybatis核心配置文件的名字不是固定的,但通常该文件的名字叫做:mybatis-config.xml
虽然mybatis核心配置文件的路径不是固定的,但通常该文件会存放到类路径当中,这样让项目的移植更加健壮。
●在mybatis中提供了一个类:Resources【org.apache.ibatis.io.Resources】,该类可以从类路径当中获取资源,我们通常使用它来获取输入流InputStream,代码如下

2.5 MyBatis第一个比较完整的代码写法

运行后数据库表的变化:


2.6 引入JUnit

●JUnit是专门做单元测试的组件。
○在实际开发中,单元测试一般是由我们Java程序员来完成的。
○我们要对我们自己写的每一个业务方法负责任,要保证每个业务方法在进行测试的时候都能通过。
○测试的过程中涉及到两个概念:
■期望值
■实际值
○期望值和实际值相同表示测试通过,期望值和实际值不同则单元测试执行时会报错。
●这里引入JUnit是为了代替main方法。
●使用JUnit步骤:
○第一步:引入依赖
○第二步:编写单元测试类【测试用例】,测试用例中每一个测试方法上使用@Test注解进行标注。
■测试用例的名字以及每个测试方法的定义都是有规范的:
●测试用例的名字:XxxTest
●测试方法声明格式:public void test业务方法名(){}
○第三步:可以在类上执行,也可以在方法上执行
■在类上执行时,该类中所有的测试方法都会执行。
■在方法上执行时,只执行当前的测试方法。
●编写一个测试用例,来测试insertCar业务
执行单元测试,查看数据库表的变化:

2.7 引入日志框架logback

●引入日志框架的目的是为了看清楚mybatis执行的具体sql。
●启用标准日志组件,只需要在mybatis-config.xml文件中添加以下配置:【可参考mybatis手册】
标准日志也可以用,但是配置不够灵活,可以集成其他的日志组件,例如:log4j,logback等。
●logback是目前日志框架中性能较好的,较流行的,所以我们选它。
●引入logback的步骤:
○第一步:引入logback相关依赖
○第二步:引入logback相关配置文件(文件名叫做logback.xml或logback-test.xml,放到类路径当中)
●再次执行单元测试方法testInsertCar,查看控制台是否有sql语句输出


2.8 MyBatis工具类SqlSessionUtil的封装

●每一次获取SqlSession对象代码太繁琐,封装一个工具类

package com.powernode.mybatis.utils;



import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;



/**

* MyBatis工具类

*

* @author 老杜

* @version 1.0

* @since 1.0

*/

public class SqlSessionUtil {

private static SqlSessionFactory sqlSessionFactory;



/**

* 类加载时初始化sqlSessionFactory对象

*/

static {

try {

SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();

sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("mybatis-config.xml"));

} catch (Exception e) {

e.printStackTrace();

}

}



/**

* 每调用一次openSession()可获取一个新的会话,该会话支持自动提交。

*

* @return 新的会话对象

*/

public static SqlSession openSession() {

return sqlSessionFactory.openSession(true);

}

}

●测试工具类,将testInsertCar()改造

@Test

public void testInsertCar(){

SqlSession sqlSession = SqlSessionUtil.openSession();

// 执行SQL

int count = sqlSession.insert("insertCar");

System.out.println("插入了几条记录:" + count);

sqlSession.close();

}

动力节点|老杜2023版MyBatis学习教程资料 本书最大的特点是能够让你从零开始,以层层递进的方式,深入框架底层源代码。小白可以从第一章开始按部就班的学习,老手程序员,可以直接从手写MyBatis框架开始学习。课程秉承动力节点一贯的教学风格,列文虎克式讲解,全程高能式教学,每个知识点的递进都伴随着N个案例予以解释,“杜”式教学风格,保证你学得会听得懂。049-手写godbatis框架第十五步selectOne方法的实现。043-手写godbatis框架第九步获取存储SQL的Map集合。046-手写godbatis框架第十二步insert方法的实现。 阅读详情

相关推荐

跟老杜从零入门MyBatis到架构思维(六)MyBatis核心配置文件-transactionManager

JNDI的方式:表示对接JNDI服务器中的连接池。充分发挥数据库连接池的性能。最大的空闲连接数量。默认值5,如何已经有了5个空闲连接,当第6个连接要空闲下来的时候,连接池会选择关闭该连接对象。poolTimeToWait:当无法获取到空闲连接时,每隔20秒打印一次日志,避免因代码配置有误,导致傻等。最大的活动的连接数量就是连接池连接数量的上限。默认值10,如果有10个请求正在使用这10个连接,第11个请求只能等待空闲连接。poolMaximumActiveConnections:最大的活动的连接数量。

java_yydsyyds的博客 309

Mybatis入门

Mybatis入门

小钟不想敲代码 1178

如何使用windows搭建一个公网ftp/sftp服务器

在有公网ip的情况下,使用windows系统搭建一个ftp/sftp服务器会带来很多的方便,可以实现远程移动端的一键式访问,对于文件的备份、多设备的共享都十分的方便。然而网上许多的教程都是基于windows自带的iis搭建一个局域网ftp服务器,然而在搭建好后,我想要通过端口映射的方式实现在外网访问时,却发现连接不上的问题,感觉可能是因为windows家庭版的原因导致的。因此在查阅很多资料之后终于找到了一个公网ftp/sftp服务器的搭建方式,实测可用。这里把流程记录一下,做一个备忘录,也方便大家搭建。

weixin_43354138的博客 1万+

mybatis笔记(老杜版本)

mybatis笔记

OriginalSword的博客 3415

基于MCP协议的AssistAI:深度集成Eclipse的AI编程助手实战指南

在AI辅助编程领域,大型语言模型(LLM)与开发工具的深度集成是提升开发效率的关键。其核心原理在于通过标准化的协议(如MCP,Model Context Protocol),将IDE的功能封装为AI可调用的工具集,从而实现环境感知与操作同步。这项技术的价值在于打破了传统AI编程工具与开发者工作流的割裂,使AI能够以符合工程规范的方式直接操作项目,如进行代码重构、运行测试和交互式调试。其典型应用场景包括复杂代码导航、自动化测试生成与精准的增量编译。本文以Eclipse插件AssistAI为例,详细解析了如何通

weixin_42531579的博客 556

第三篇:学习InternVL2.0(探讨代码之训练模块版)

InternVL2的训练模块

qq_69051120的博客 1244

SSM框架专题-MyBatis框架从零入门老杜版笔记(上)

MyBatis自用笔记,记录学习全过程

u011005040的博客 1万+

TI 实时操作系统SYS/BIOS使用总结

1:概述: SYS/BIOS 是一个可扩展的实时的操作系统。具有非常快速的响应时间(在中断和任务切换时达到较短的延迟),响应时间的确定性,强壮的抢占系统,优化的内存分配和堆栈管理(尽量少的消耗和碎片)。能够实现系统的模块化并可裁剪。 最大的特点就是:实时。 2:XDCtools: XDCtools 是SYS/BIOS引用的一种实时的软件组件技术(RTSC),它包括一些有用的工具,标准的AP

带头奋青的博客 5万+

跟老杜从零学MyBatis框架【二】MyBatis入门程序

注意2:CarMapper.xml文件的名字不是固定的。可以使用其它名字。注意3:CarMapper.xml文件的位置也是随意的。这里选择放在resources根下,相当于放到了类的根路径下。注意4:将CarMapper.xml文件路径配置到mybatis-config.xml:

2301_76637874的博客 189

简要介绍 | 两阶段点云目标检测:理论与实践

目标检测是计算机视觉中的一个重要任务,其目的是识别和定位图像中的物体。对于二维图像,这已经有许多有效的方法。然而,对于三维数据(如由LiDAR生成的点云数据),目标检测则更为复杂。

NLOS的博客 1306

华为嵌入式面试题及参考答案(持续更新)

异步是指在程序执行过程中,某些任务不需要等待立即完成就可以继续执行其他任务的过程。在计算机编程中,异步通常用于处理长时间运行的操作,如文件读写、网络通信等,以避免阻塞主线程。异步处理通常涉及到回调函数、事件循环、协程或未来的概念。使用宏定义来避免命名冲突。#else#endif堆和栈是计算机程序中用于存储数据的两种不同类型的内存区域。

大模型大数据攻城狮的专栏 2483

跟老杜从零入门MyBatis到架构思维(一)MyBatis概述

课程讲解从Mybatis的一些核心要点与实战中的运用,一直过渡到MyBaits源码,由表及里的代入架构思维。一步一案例,一码一实操。从简单到深入,从实战到源码,MyBatis重点、难点、考点一网打尽。配合视频教程观看,更易学习理解,2. ORM:对象关系映射。

java_yydsyyds的博客 464

【绝对要收藏-优秀论文范文】高项-度量绩效域

摘要:本文基于某水库数字孪生平台建设项目(2022.9-2023.5,645.97万元)的管理实践,从信息系统度量绩效域角度展开论述。项目构建了包含防洪调度等6大子系统的数字平台,实现洪水"四预"功能。重点分析了度量绩效域的五大要点:制定有效指标(如成本±8%偏差阈值)、多维数据采集、预警临界值设定、基于趋势的主动干预和持续改进机制。特别阐述了绩效问题的诊断方法,包括设备采购全周期成本分析、阶段性成本报告制度等。项目状态展示采用三维可视化看板,集成进度、成本、质量等多维度实时数据,最终实

xylllamm的博客 345

跟着老杜学MyBatis+第2天+MyBatis入门程序

注意2:CarMapper.xml文件的名字不是固定的。可以使用其它名字。注意3:CarMapper.xml文件的位置也是随意的。这里选择放在resources根下,相当于放到了类的根路径下。注意4:将CarMapper.xml文件路径配置到mybatis-config.xml:

少年一贯快马扬帆,道阻且长不转弯; 要盛大,要绚烂,要哗然; 要用理想的泰坦尼克,去撞现实的冰川; 要当烧赤壁的风,而非借鉴草船; 要为了一片海,就肯翻万山。 1561

基于深度学习的图像识别技术在农业领域中的应用

是识别"病害种类"还是"病害严重度分级"?前者是分类,后者常需分割或分级回归。是叶片级(离体叶片图像)、植株级(田间单株)、地块级(无人机俯拍)?视角不同,模型差异巨大。实时无人机巡检可能要求 < 50 ms/帧(Jetson Orin),而离线测报可接受秒级推理。类别标签、结构化 JSON、GIS 图斑、报警事件?

AI天才研究院 2164

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

老杜MyBatis笔记

Mybatis是持久层框架是对JDBC功能进行一些封装。同时JDBC写java里面不符合开闭原则,JDBC操作繁琐O(object):jvm中的java对象R(Relational):关系型数据库M(Mapper):映射上面是ROM?:pojo与数据表记录的互相映射。

m0_74321406的博客 1269

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

动力节点老杜MyBatis教程:从入门到精通的技术之旅

动力节点老杜MyBatis教程:从入门到精通的技术之旅 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 《动力节点老杜MyBatis教程学习资料分享》是一套专为MyBatis学习者量身打造的精品教程。无论你是编程初学者,还是已有一定经验的软件工程师,这套教程都能帮助你全面掌握MyBatis的核心技术。课程从基础概念入手,逐步深入到框架的核心乃至源码剖析,确保每一位学员都...

gitblog_09773的博客 633

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

跟老杜从零入门MyBatis到架构思维(五)MyBatis核心配置文件-environment

配合视频教程观看,更易学习理解,课程讲解从Mybatis的一些核心要点与实战中的运用,一直过渡到MyBaits源码,由表及里的代入架构思维。一步一案例,一码一实操。从简单到深入,从实战到源码,MyBatis重点、难点、考点一网打尽。​。

java_yydsyyds的博客 169

跟老杜从零入门MyBatis到架构思维(七)MyBatis核心配置文件-properties

源码,由表及里的代入架构思维。一步一案例,一码一实操。从简单到深入,从实战到源码,MyBatis重点、难点、考点一网打尽。配合视频教程观看,更易学习理解,课程讲解从Mybatis的一些核心要点与实战中的运用,一直过渡到。--${key}使用-->--引入外部属性资源文件-->

java_yydsyyds的博客 133

跟老杜从零入门MyBatis到架构思维(四)使用MyBatis完成CRUD- 下

配合视频教程观看,更易学习理解,课程讲解从Mybatis的一些核心要点与实战中的运用,一直过渡到MyBaits源码,由表及里的代入架构思维。一步一案例,一码一实操。从简单到深入,从实战到源码,MyBatis重点、难点、考点一网打尽。相关的学习资料给大家备好了​。

java_yydsyyds的博客 179

SSM框架专题-MyBatis框架老杜版从零入门笔记(下)

MyBatis的高级进阶部分

u011005040的博客 2453

跟老杜从零入门MyBatis到架构思维(三)使用MyBatis完成CRUD- insert(Create)

配合视频教程观看,更易学习理解,课程讲解从Mybatis的一些核心要点与实战中的运用,一直过渡到MyBaits源码,由表及里的代入架构思维。一步一案例,一码一实操。从简单到深入,从实战到源码,MyBatis重点、难点、考点一网打尽。相关的学习资料给大家备好了​。

java_yydsyyds的博客 196

老杜带你从零入门MyBatis,学MyBatis看这篇就够了!

从零基础小白学习的角度出发,以层层递进的方式,一直深入到框架底层源代码的实现原理。不管你是小白还是正在实战开发的软件工程师,渗透全面一套拿捏~ 课程秉承动力节点一贯的教学风格,列文虎克式讲解,全程高能式教学,每个知识点的递进都伴随着N个案例予以解释,“杜”式教学风格,保证你学得会听得懂。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。课程讲解从Mybatis的一些核心要点与实战中的运用,一直过渡到MyBaits源码,由表及里的代入架构思维。

hujidedf的博客 430

跟老杜从零学MyBatis框架【三】使用MyBatis完成CRUD

课程讲解从Mybatis的一些核心要点与实战中的运用,一直过渡到MyBaits源码,由表及里的代入架构思维。一步一案例,一码一实操,学,嘴对嘴指导。从简单到深入,从实战到源码,MyBatis重点、难点、考点一网打尽。学习地址:https://www.bilibili.com/video/BV1JP4y1Z73S/

2301_76637874的博客 195

[记录学习]自学动力节点老杜MyBatis笔记_01

自学B站动力结点老杜MyBatis笔记

sls1223074612的博客 2269
上一篇: 跟老杜从零入门MyBatis到架构思维(一)MyBatis概述
下一篇: 跟老杜从零入门MyBatis到架构思维(三)使用MyBatis完成CRUD- insert(Create)
Java摸鱼学习者
博客等级 码龄4年 2粉丝 22原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值