【MyBatis】day01搭建MyBatis框架

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【MyBatis】day01搭建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包
1. <!--导入MySQL的驱动包-->
2. <dependency>
3. <groupId>mysql</groupId>
4. <artifactId>mysql-connector-java</artifactId>
5. <version>5.1.37</version>
6. </dependency>
7. <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
8. <dependency>
9. <groupId>mysql</groupId>
10. <artifactId>mysql-connector-java</artifactId>
11. <version>8.0.26</version>
12. </dependency>
13. 
14. <!--导入MyBatis的jar包-->
15. <dependency>
16. <groupId>org.mybatis</groupId>
17. <artifactId>mybatis</artifactId>
18. <version>3.5.6</version>
19. </dependency>
20. <!--junit-->
21. <dependency>
22. <groupId>junit</groupId>
23. <artifactId>junit</artifactId>
24. <version>4.12</version>
25. <scope>test</scope>
26. </dependency>
  1. 编写核心配置文件【mybatis-config.xml】
  • 位置:resources目标下
  • 名称:推荐使用mybatis-config.xml
  • 示例代码
1. <?xml version="1.0" encoding="UTF-8" ?>
2. <!DOCTYPE configuration
3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
5. 
6. <configuration>
7. <environments default="development">
8. <environment id="development">
9. <transactionManager type="JDBC"/>
10. <dataSource type="POOLED">
11. <!--                mysql8版本-->
12. <!--                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>-->
13. <!--                <property name="url" value="jdbc:mysql://localhost:3306/db220106?serverTimezone=UTC"/>-->
14. <!--                mysql5版本-->
15. <property name="driver" value="com.mysql.jdbc.Driver"/>
16. <property name="url" value="jdbc:mysql://localhost:3306/db220106"/>
17. <property name="username" value="root"/>
18. <property name="password" value="root"/>
19. </dataSource>
20. </environment>
21. </environments>
22. <!--    设置映射文件路径-->
23. <mappers>
24. <mapper resource="mapper/EmployeeMapper.xml"/>
25. </mappers>
26. </configuration>
  1. 书写相关接口及映射文件
  • 映射文件位置:resources/mapper
  • 映射文件名称:XXXMapper.xml
  • 映射文件作用:主要作用为Mapper接口书写Sql语句
  • 映射文件名与接口名一致
  • 映射文件namespace与接口全类名一致
  • 映射文件SQL的Id与接口的方法名一致
  • 示例代码
1. <?xml version="1.0" encoding="UTF-8" ?>
2. <!DOCTYPE mapper
3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5. <mapper namespace="com.atguigu.mybatis.mapper.EmployeeMapper">
6. <select id="selectEmpById" resultType="com.atguigu.mybatis.pojo.Employee">
7.         SELECT
8.             id,
9.             last_name,
10.             email,
11.             salary
12.         FROM
13.             tbl_employee
14.         WHERE
15.             id=#{empId}
16. </select>
17. </mapper>
  1. 测试【SqlSession】
  • 先获取SqlSessionFactory对象
  • 再获取SqlSession对象
  • 通过SqlSession对象获取XXXMapper代理对象
  • 测试

2.3 添加Log4j日志框架

  • 导入jar包
1. <!-- log4j -->
2. <dependency>
3. <groupId>log4j</groupId>
4. <artifactId>log4j</artifactId>
5. <version>1.2.17</version>
6. </dependency>
  • 编写配置文件
  • 配置文件名称:log4j.xml
  • 配置文件位置:resources
  • 示例代码
1. <?xml version="1.0" encoding="UTF-8" ?>
2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
3. 
4. <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
5. 
6. <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
7. <param name="Encoding" value="UTF-8" />
8. <layout class="org.apache.log4j.PatternLayout">
9. <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" />
10. </layout>
11. </appender>
12. <logger name="java.sql">
13. <level value="debug" />
14. </logger>
15. <logger name="org.apache.ibatis">
16. <level value="info" />
17. </logger>
18. <root>
19. <level value="debug" />
20. <appender-ref ref="STDOUT" />
21. </root>
22. </log4j:configuration>

第三章 Mybatis核心配置详解【mybatis-config.xml】

3.1 核心配置文件概述

  • MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。

3.2 核心配置文件根标签

  • 没有实际语义,主要作用:所有子标签均需要设置在跟标签内部

3.3 核心配置文件常用子标签

  • properties子标签
  • 作用:定义或引入外部属性文件
  • 示例代码
1. #key=value
2. db.driver=com.mysql.jdbc.Driver
3. db.url=jdbc:mysql://localhost:3306/db220106
4. db.username=root
5. db.password=root
1. <properties resource="db.properties"></properties>
2. 
3. <environments default="development">
4. <environment id="development">
5. <transactionManager type="JDBC"/>
6. <dataSource type="POOLED">
7. <!--                mysql8版本-->
8. <!--                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>-->
9. <!--                <property name="url" value="jdbc:mysql://localhost:3306/db220106?serverTimezone=UTC"/>-->
10. <!--                mysql5版本-->
11. <property name="driver" value="${db.driver}"/>
12. <property name="url" value="${db.url}"/>
13. <property name="username" value="${db.username}"/>
14. <property name="password" value="${db.password}"/>
15. </dataSource>
16. </environment>
17. </environments>
  • settings子标签
  • 作用:这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。
  • mapUnderscoreToCamelCase属性:是否开启驼峰命名自动映射,默认值false,如设置true会自动将字段a_col与aCol属性自动映射
  • 注意:只能将字母相同的字段与属性自动映射
  • 类型别名(typeAliases)
  • 作用:类型别名可为 Java 类型设置一个缩写名字。
  • 语法及特点
1. <typeAliases>
2. <!--        为指定类型定义别名-->
3. <!--        <typeAlias type="com.atguigu.mybatis.pojo.Employee" alias="employee"></typeAlias>-->
4. <!--        为指定包下所有的类定义别名
5.                 默认将类名作为别名,不区分大小写【推荐使用小写字母】
6. -->
7. <package name="com.atguigu.mybatis.pojo"/>
8. </typeAliases>
  • Mybatis自定义别名
别名 类型
_int int
integer或int Integer
string String
list或arraylist ArrayList
map或hashmap HashMap

  • 环境配置(environments)
  • 作用:设置数据库连接环境
  • 示例代码
1. <!--    设置数据库连接环境-->
2. <environments default="development">
3. <environment id="development">
4. <transactionManager type="JDBC"/>
5. <dataSource type="POOLED">
6. <!--                mysql8版本-->
7. <!--                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>-->
8. <!--                <property name="url" value="jdbc:mysql://localhost:3306/db220106?serverTimezone=UTC"/>-->
9. <!--                mysql5版本-->
10. <property name="driver" value="${db.driver}"/>
11. <property name="url" value="${db.url}"/>
12. <property name="username" value="${db.username}"/>
13. <property name="password" value="${db.password}"/>
14. </dataSource>
15. </environment>
16. </environments>
  • mappers子标签
  • 作用:设置映射文件路径
  • 示例代码
1. <!--    设置映射文件路径-->
2. <mappers>
3. <mapper resource="mapper/EmployeeMapper.xml"/>
4. <!-- 要求:接口的包名与映射文件的包名需要一致-->
5. <!--        <package name="com.atguigu.mybatis.mapper"/>-->
6. </mappers>
  • 注意:核心配置中的子标签,是有顺序要求的。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
Java 数据库连接 Maven
后端框架学习-----mybatis(使用mybatis框架遇到的问题)
这篇文章总结了在使用MyBatis框架时可能遇到的几个常见问题及其解决方法,包括配置文件注册、接口绑定、方法名匹配、返回类型匹配、Maven资源导出、时区设置和字符编码问题。
|
15天前
|
SQL Java 数据库连接
持久层框架MyBatisPlus
持久层框架MyBatisPlus
32 1
持久层框架MyBatisPlus
|
29天前
|
缓存 Cloud Native 安全
探索阿里巴巴新型ORM框架:超越MybatisPlus?
【10月更文挑战第9天】在Java开发领域,Mybatis及其增强工具MybatisPlus长期占据着ORM(对象关系映射)技术的主导地位。然而,随着技术的发展,阿里巴巴集团推出了一种新型ORM框架,旨在提供更高效、更简洁的开发体验。本文将对这一新型ORM框架进行探索,分析其特性,并与MybatisPlus进行比较。
29 0
|
3月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
3月前
|
Java 数据库连接 mybatis
mybatis框架图
文章介绍了MyBatis框架的起源、发展和其作为持久层框架的功能,提供了MyBatis的框架图以帮助理解其结构和组件。
mybatis框架图
|
3月前
|
安全 Java 数据库连接
后端框架的学习----mybatis框架(3、配置解析)
这篇文章详细介绍了MyBatis框架的核心配置文件解析,包括环境配置、属性配置、类型别名设置、映射器注册以及SqlSessionFactory和SqlSession的生命周期和作用域管理。
后端框架的学习----mybatis框架(3、配置解析)
|
3月前
|
Java 数据库连接 mybatis
后端框架的学习----mybatis框架(9、多对一处理和一对多处理)
这篇文章介绍了在MyBatis框架中如何处理多对一和一对多的关联查询,通过定义`<resultMap>`和使用`<association>`与`<collection>`元素来实现对象间的关联映射。
|
3月前
|
Java 数据库连接 测试技术
后端框架的学习----mybatis框架(8、lombok)
这篇文章介绍了如何在MyBatis框架中使用lombok库来简化Java实体类的编写,包括在IDEA中安装Lombok插件、在项目中导入lombok依赖以及在实体类上使用Lombok提供的注解。
|
3月前
|
Java 数据库连接 数据库
后端框架的学习----mybatis框架(6、日志)
这篇文章介绍了如何在MyBatis框架中使用日志功能,包括配置MyBatis的日志实现、使用log4j作为日志工具,以及如何通过配置文件控制日志级别和输出格式。
|
4月前
|
Java 数据库连接 Spring
搭建 spring boot + mybatis plus 项目框架并进行调试
搭建 spring boot + mybatis plus 项目框架并进行调试
93 4