2024/10/24日 日志 --》关于Mybatis的学习笔记整理 - 环境与性质 以及ResultMap
步入了Mybatis的学习之中,以下为其相关内容的细化笔记整理,包括Mabits的简介以及快速入门和resultMap部分。
点击查看代码
-- MyBatis
-- ·MyBatis是一款优秀的 持久层框架,用于简化JDBC开发
-- ·官网:https://mybatis.net.cn/
-- 持久层:
-- ·负责将数据保存到数据库的那一层代码
-- JavaEE三层架构:表现层、业务层、持久层 分别对应 页面展示 逻辑处理 数据持久化
-- 框架:
-- ·框架就是一个半成品软件,是一套可重用的、通用的、软件基础代码模型
-- ·在框架的基础之上构建软件编写更加高效、规范、通用、可扩展
-- JDBC缺点 与Mybatis简化
-- 1.硬编码 --->配置文件
-- --》注册驱动,获取连接
-- --》SQL语句
-- 2.操作繁琐 --->自动完成
-- --》手动设置参数
-- --》手动封装结果集
--
-- MyBatis 快速入门
-- 步骤:查询User表中所有数据
-- 1.创建user表,添加数据
-- 2.创建模块,导入坐标
-- 3.编写MyBatis核心配置文件 -->替换连接信息 解决硬编码
-- 4.编写SQL映射文件 -->统一管理sql语句,解决硬编码问题
-- 5.编码
-- 1.定义POJO类
-- 2.加载核心配置文件,获取SqlSessionFactory对象
-- 3.获取SqlSession对象,执行SQL语句
-- 4.释放资源
--
-- 解决SQL映射文件的警告提示
-- ·产生原因:IDEA和数据库没有建立连接,不识别表信息
-- ·解决方式:在IDEA中配置MySQL数据库连接
--
-- Mapper 代理开发
-- ·目的
-- --》解决原生方式中的硬编码
-- --》简化后期执行SQL
-- 示例:
-- 原:
-- //3.执行SQL
-- List<User>users = sqlSession.selectList("test.selectAll");
-- 后:
-- //3.获取接口代理对象
-- UserMapper UserMapper = sqlSession.getMapper(UserMapper.class);
-- //4.执行方法,起始就是执行SQL语句
-- List<User>users = userMapper.selectAll();
--
-- 使用Mapper代理的方式完成入门案例
-- 1.定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下
-- 2.设置SQL映射文件的namespace属性为 Mapper接口全限定名
-- 3.在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致
-- 4.编码
-- 1.通过SqlSession的getMapper方法获取Mapper接口的代理对象
-- 2.调用对应方法完成sql的执行
-- 细节:如果Mapper接口名称和SQL映射文件名称相同,并且在同一目录下,
-- 则可以通过使用包扫描的方式简化SQL映射文件的加载
--
-- MyBatis
-- 类型别名typeAliases
-- <typeAliases>
-- <package name = "com.itheima.pojo"/>
-- </typeAliases>
-- 细节:配置各个标签时需要遵守前后顺序. 具体在官网核心配置文件查看.
--
-- MyBatisX插件
-- ·MybatisX是一款基于IDEA的快速开发插件,为效率而生
-- ·主要功能:
-- --》XML和接口方法相互跳转
-- --》根据接口方法生成statement
--
点击查看代码
-- 数据库表的字段名称和实体类的属性名称不一样,则不能自动封装数据。
-- 1.起别名,在SQL语句中对不一样的列名起别名,别名和实体属性名一样
-- *可以定义<sql>片段,提升复用性
-- 2.resultMap: 定义<resultMap>完成不一致的属性名和列名的映射
--
--
-- *起别名:对不一样的列名起别名,让别名和实体类的属性名一样
-- *缺点:每次查询都要定义一次别名
-- *sql片段
-- *缺点:不灵活
-- *resultMap:
-- 1.定义resultMap标签
-- 2. 使用resultMap替换resultType属性
--
-- <!--
-- namespace:名称空间
-- -->