IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Mybatis初识和框架搭建

news/2025/2/12 19:12:36/

第一章 初识Mybatis

1.1 框架概述
  • 生活中“框架”
    • 买房子
    • 笔记本电脑
  • 程序中框架【代码半成品】

    • Mybatis框架:持久化层框架【dao层】
    • SpringMVC框架:控制层框架【Servlet层】
    • Spring框架:全能…
1.2 Mybatis简介
  • Mybatis是一个半自动化持久化层ORM框架

  • ORM:Object Relational Mapping【对象 关系 映射】

    • 将Java中的对象与数据库中建议映射关系,优势:操作Java中的对象,就可以影响数据库中表的数据
  • Mybatis与Hibernate对比

    • Mybatis是一个半自动化【需要手写SQL】
    • Hibernate是全自动化【无需手写SQL】
  • Mybatis与JDBC对比

    • JDBC中的SQL与Java代码耦合度高
    • Mybatis将SQL与Java代码解耦
  • Java POJO(Plain Old Java Objects,普通老式 Java 对象)

    • JavaBean 等同于 POJO
1.3 官网地址
  • 文档地址:mybatis.org/mybatis-3/
  • 源码地址:github.com/mybatis/mybatis-3

第二章 搭建Mybatis框架

导入jar包

编写配置文件

使用核心类库

2.1 准备
  • 建库建表建约束
  • 准备maven工程
2.2 搭建Mybatis框架步骤
  1. 导入jar包

    <!--导入MySQL的驱动包-->
    <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.37</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version>
    </dependency><!--导入MyBatis的jar包-->
    <dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version>
    </dependency>
    <!--junit-->
    <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope>
    </dependency>
    
  2. 编写核心配置文件【mybatis-config.xml】

    • 位置:resources目标下

    • 名称:推荐使用mybatis-config.xml

    • 示例代码

      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED">
      <!--                mysql8版本-->
      <!--                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>-->
      <!--                <property name="url" value="jdbc:mysql://localhost:3306/db220106?serverTimezone=UTC"/>-->
      <!--                mysql5版本--><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/db220106"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environments><!--    设置映射文件路径--><mappers><mapper resource="mapper/EmployeeMapper.xml"/></mappers>
      </configuration>
      
  3. 书写相关接口及映射文件

    • 映射文件位置:resources/mapper

    • 映射文件名称:XXXMapper.xml

    • 映射文件作用:主要作用为Mapper接口书写Sql语句

      • 映射文件名与接口名一致
      • 映射文件namespace与接口全类名一致
      • 映射文件SQL的Id与接口的方法名一致
    • 示例代码

      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
      <mapper namespace="com.atguigu.mybatis.mapper.EmployeeMapper"><select id="selectEmpById" resultType="com.atguigu.mybatis.pojo.Employee">SELECTid,last_name,email,salaryFROMtbl_employeeWHEREid=#{empId}</select>
      </mapper>
      
  4. 测试【SqlSession】

    • 先获取SqlSessionFactory对象
    • 再获取SqlSession对象
    • 通过SqlSession对象获取XXXMapper代理对象
    • 测试
2.3 添加Log4j日志框架
  • 导入jar包

    <!-- log4j -->
    <dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version>
    </dependency>
    
  • 编写配置文件

    • 配置文件名称:log4j.xml

    • 配置文件位置:resources

    • 示例代码

      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"><log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"><appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"><param name="Encoding" value="UTF-8" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" /></layout></appender><logger name="java.sql"><level value="debug" /></logger><logger name="org.apache.ibatis"><level value="info" /></logger><root><level value="debug" /><appender-ref ref="STDOUT" /></root>
      </log4j:configuration>
      

http://www.ppmy.cn/news/1232276.html

相关文章

城市易涝点怎么安装万宾科技内涝积水监测仪?

城市内涝是多个城市广泛存在的问题&#xff0c;经常给城市的居民和基础设施带来一些安全威胁。暴雨引发的道路积水和交通中断、财产损失&#xff0c;甚至公共安全威胁都是城市管理者需要提前预防的问题。为了解决这些问题&#xff0c;内涝积水监测仪的应用是一大重要的举措&…

使用Pytorch实现linear_regression

使用Pytorch实现线性回归 # import necessary packages import torch import torch.nn as nn import numpy as np import matplotlib.pyplot as plt# Set necessary Hyper-parameters. input_size 1 output_size 1 num_epochs 60 learning_rate 0.001# Define a Toy datas…

【Skynet 入门实战练习】开发环境搭建 | 运行第一个项目 | debug console 简单使用

文章目录 写在前面开发环境搭建skynet配置文件项目&#xff0c;启动&#xff01; debug console 写在前面 本系列【Skynet 入门实战练习】所有源码同步&#xff1a;https://gitee.com/Cauchy_AQ/skynet_practice 开发环境搭建 skynet skynet 框架地址&#xff1a;https://g…

商品详情API接口获取商品数据

一、商品详情API接口的基本原理 商品详情API接口是电商平台提供的一种服务&#xff0c;它允许开发人员通过发送HTTP请求来获取特定商品的详细信息。通常&#xff0c;这些API接口会返回一个包含商品数据的JSON格式的响应。开发人员可以使用编程语言&#xff08;如Python、JavaS…

【算法】二分查找-20231122

这里写目录标题 一、1089. 复写零二、917. 仅仅反转字母三、88. 合并两个有序数组四、283. 移动零 一、1089. 复写零 提示 简单 266 相关企业 给你一个长度固定的整数数组 arr &#xff0c;请你将该数组中出现的每个零都复写一遍&#xff0c;并将其余的元素向右平移。 注意&a…

List操作的一些常见问题

文章目录 阿里巴巴开发手册强制规约&#xff1a;1. Arrays.asList转换基本类型数组2. Arrays.asList返回的List不支持增删操作3. 对原始数组的修改会影响到我们获得的那个List4. ArrayList.subList强转ArrayList导致异常5. ArrayList中的subList切片造成OOM6.Copy-On-Write 是什…

html手势密码解锁插件(附源码)

文章目录 1.设计来源1.1 界面效果 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/134534785 html手势密码解锁插件(附源码)&#xff0c;仿手机手势密码&#xff0c;拖动九…

html滑动文章标题置顶

position: sticky; 基于用户的滚动位置来定位 首先封装一个组件 例如&#xff1a;AAA组件&#xff08;注意&#xff0c;只能有一层盒子&#xff0c;不能在外面继续包一层div&#xff09; <template><div class"box">{{title}}</div> </templa…