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

第一章 初识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框架

导入jar包

编写配置文件

使用核心类库

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

    xml 复制代码
    <!--导入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 复制代码
      <?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>
          <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 复制代码
      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE mapper
              PUBLIC "-//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">
              SELECT
                  id,
                  last_name,
                  email,
                  salary
              FROM
                  tbl_employee
              WHERE
                  id=#{empId}
          </select>
      </mapper>
  4. 测试【SqlSession】

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

    xml 复制代码
    <!-- log4j -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
  • 编写配置文件

    • 配置文件名称:log4j.xml

    • 配置文件位置:resources

    • 示例代码

      xml 复制代码
      <?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>
相关推荐
小_太_阳1 小时前
Scala_【1】概述
开发语言·后端·scala·intellij-idea
J不A秃V头A3 小时前
IntelliJ IDEA中设置激活的profile
java·intellij-idea
odng4 小时前
IDEA自己常用的几个快捷方式(自己的习惯)
java·ide·intellij-idea
hanbarger4 小时前
mybatis框架——缓存,分页
java·spring·mybatis
18号房客5 小时前
macOS开发环境配置与应用开发教程(一)
vscode·macos·visualstudio·eclipse·intellij-idea·phpstorm·visual studio
smile-yan5 小时前
Provides transitive vulnerable dependency maven 提示依赖存在漏洞问题的解决方法
java·maven
果冻的猿宇宙5 小时前
Maven 中央仓库访问过慢的解决方案--设置国内镜像
maven·镜像·仓库·aliyun·国内镜像·mirror
哆啦 AI 梦5 小时前
【Maven】如何解决Maven循环依赖?
maven·循环依赖
Earnest~5 小时前
Maven极简安装&配置-241223
java·maven
皮蛋很白5 小时前
Maven 环境变量 MAVEN_HOME 和 M2_HOME 区别以及 IDEA 修改 Maven repository 路径全局
java·maven·intellij-idea