首页 > 编程语言 >跟老杜从零入门MyBatis到架构思维(二)MyBatis入门程序

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

时间:2023-03-07 16:12:39浏览次数:57  
标签:xml 入门 配置文件 编辑 mybatis 杜从 MyBatis logback

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();

}

 


标签:xml,入门,配置文件,编辑,mybatis,杜从,MyBatis,logback
From: https://www.cnblogs.com/fafa155/p/17188416.html

相关文章

  • 【建议收藏】超详细的Canal入门,看这篇就够了!!!
    概述canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。背景早期,阿里巴巴B2B公司因为存在......
  • SpringCloud-全面详解(学习总结---从入门到深化)
    微服务架构进化论 单体应用阶段(夫妻摊位)在互联网发展的初期,用户数量少,一般网站的流量也很少,但硬件成本较高。因此,一般的企业会将所有的功能都集成在一起开发一个单体......
  • 多线程设计模式-全面详解(学习总结---从入门到深化)
    目录​​SingleThreadExecution设计模式​​​​机场过安检​​​​ 非线程安全​​​​ 问题分析​​​​首字母相同却未通过检查​​​​为何出现首字母不相同的情况......
  • 跟老杜从零入门MyBatis到架构思维(一)MyBatis概述
    今天这篇文章带大家详细了解MyBatis框架配合视频教程观看,更易学习理解,课程讲解从Mybatis的一些核心要点与实战中的运用,一直过渡到MyBaits源码,由表及里的代入架构思维。一......
  • MyBatis 动态SQL标签汇总
    if标签<selectid="getEmpByCondition"resultType="com.xy.mybatis.dynamic.pojo.Emp">select*fromempwhere1=1<iftest="name!=''andname!=......
  • mybatis-plus(mp)常用概念以及demo实操
    概念:作为国内流行的持久层框架,mp是mybatis的拓展,并不改变mybaits的底层,因此使用mybatis的项目可以无缝使用mp进行迭代本博客旨在温习mp常用的使用场景、使用方式(一)demo框......
  • 老杜带你从零入门MyBatis,学MyBatis看这篇就够了!
    MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。2013年11月迁移到Github。iBATIS一词来源于......
  • Mybatis框架的mapper接口中的方法名可以重载吗
    关于mybatis框架的mapper接口中的方法名是否可以重载答案是不可以重载为什么是不可以重载?这个就要从Mybatis框架中mapper接口的工作原理说起Mybatis中mapper接口的工作......
  • C# 入门教程
    C#入门教程本文主要介绍C#入门教程,需要了解的(MicrosoftVisualStudio)VS安装配置,.Net框架(.NetFramework),创建运行C#程序代码的方法,以及相关示例代码。1、V......
  • MybatisPlus多表连接查询
    一、(一)背景内容软件应用技术架构中DAO层最常见的选型组件为MyBatis,熟悉MyBatis的朋友都清楚,曾几何时MyBatis是多么的风光,使用XML文件解决了复杂的数据库访问的难题。时至......