MyBatis

MyBatis是一个支持定制化SQL和高级映射的持久层框架,避免了JDBC的手动设置参数和结果集获取。它允许自定义SQL,存储过程,并提供了面向接口的操作方式。在MyBatis中,通过XML或注解配置SQL,通过接口调用执行SQL。映射文件和接口的命名空间与方法名需一致,以实现数据操作。MyBatis的配置包括核心配置文件(数据库连接和全局配置)和映射文件,且可以结合Spring进行使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MyBatis的基础介绍

作用:连接数据库,访问、操作数据库中的数据,最终将结果返回给业务层

MyBatis是支持定制化SQL,存储过程及高级映射的持久层框架

定制化SQL:自己写SQL
存储过程:设计mysql的高级部分
普通映射:数据库查询出数据后,根据反射将其对应实体类对象,若字段名与属性名一致,则将数据映射为实体类对象,若字段名与属性名不一致,则无法映射
高级映射:自定义映射,可解决字段名与属性名不一致的情况,及一对多、多以一的关系

MyBatis:避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集,是一个 半自动的ORM(Object Relation Mapping)框架

ORM(Object Relation Mapping):Object表示实体类对象;Relation表示关系型数据库;Mapping表示映射;java中的实体类对象和数据库中的数据创建映射关系
Hibernate: 全自动的ORM框架,能自动生成SQL

MyBatis:
1、xml和注解用于配置和原始映射

实现SQL语句:
1)xml文件
2)注解方式写在接口中

2、面向接口编程

现有的DAO层(即mapper层)只需要有接口,不需要实现类
只需在调用接口中的方法时,直接对应相应的SQL语句并执行

3、将接口和Java的实体类对象映射成数据库中的记录

MyBatis操作SQL的过程

MyBatis有两个配置文件

1)核心配置文件:连接数据库信息和MyBatis全局配置信息
2)映射文件:编写SQL语句

MyBatis中SQL和java编程分开,功能边界清晰。java代码注重业务逻辑,SQL语句专注数据

搭建MyBatis

1、创建Maven工程

打包方式:jar
引入依赖

2、创建MyBatis的核心配置文件
这里包括:设置数据库的连接 和 引入映射文件

主要用于配置连接数据库的环境和MyBatis的全局配置信息
将来整合Spring之后,这个配置文件可以省略

3、创建mapper接口
调用mapper接口中的方法则会自动调用SQL语句中并执行。

MyBatis的mapper接口相当于以前的dao。但是区别在于,mapper仅仅是接口,不需要提供实现类。

4、创建mapper接口对应的映射文件

作用:用于编写SQL,对表中的数据进行操作
实体类 ------- 表;属性名 ------------- 字段名;对象----------------记录/行
映射文件的命名规则:表所对应的实体类的类名+Mapper.xml
MyBatis中可以面向接口操作数据,要保证两个一致

1)mapper接口的全类名和映射文件的命名空间(namespace)保持一致
2)mapper接口中方法的方法名和映射文件中编写SQL的标签的id属性保持一致

注意:
MyBatis的两个配置文件的约束类型不同:
1)映射文件:mybatis-3-mapper.dtd
2)核心配置文件:mybatis-3-config.dtd

在Resources下相当于普通目录,创建各层级目录时用 / 的方式
一个mapper接口对应一个映射文件,对应一张表,对应一个实体类对象

5、通过junit测试功能
1)加载核心配置文件
2)创建SqlSessionFactoryBuilder对象
3)创建工厂类SqlSessionFactory
4)创建SqlSession对象,设置sql为自动提交
5)创建Mapper接口的代理实现类对象
6)调用mapper接口中的方法

根据mapper接口的全类名找到映射文件,根据接口中的方法名找到sql标签
SqlSession:代表Java程序和数据库之间的会话。(HttpSession是Java程序和浏览器之间的会话)
SqlSessionFactory:是“生产”SqlSession的“工厂”。
工厂模式:将创建对象的过程进行封装,直接提供当前的对象
mybatis框架底层基于mapper接口动态的创建实现类(用代理模式)

加入log4j日志功能
加入依赖
加入log4j的配置文件

日志的级别:
FATAL(致命)>ERROR(错误)>WARN(警告)>INFO(信息)>DEBUG(调试)
从左到右打印的内容越来越详细

未完待续…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值