MyBatis简介

MyBatis是一款出色的持久层框架,简化了JDBC代码,支持自定义SQL、存储过程和高级映射。本文介绍了MyBatis的历史、为何使用它以及其优点,如简单易学、灵活性高、SQL与代码分离等。并详细讲解了如何搭建项目、配置MyBatis环境以及使用Mapper。

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

作者:杜永鹏
撰写时间:2022 年 3 月 6日

						MyBatis简介

1、什么是mybatis
官方描述:MyBatis是一款优秀的持久层框架,它支持自定义SQL、储存过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和Java POJO(Plain Old Java Objects,普通老式Java对象)为数据库中的记录。

1.1、MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。

1.2、2013年11月迁移到Github。

2、为什么需要MyBatis?

1.帮助程序猿将数据存入到数据库中
2.方便
3.传统的JDBC代码太复杂了。简化。框架。自动化。

4.优点:
4.1、简单易学
4.2、灵活
4.3、sql和代码的分离,提高了可维护性。
4.4、提供映射标签,支持对象与数据库的orm字段关系映射
4.5、提供对象关系映射标签,支持对象关系组建维护
4.6、提供xml标签,支持编写动态sql。

3、MyBatis基本使用
3.1搭建项目引入Jar包
1.使用IDEA新建Java命令行项目
2.新建lib目录,导入jar包,并配置为项目的Library:
在这里插入图片描述
在这里插入图片描述

3.2、编写MyBatis配置文件

1.核心配置文件mybatis-conf.xml:

<?xml version="1.0" encoding="UTF-8" ?>

MyBatis配置根节点

配置属性 可以在外部进行配置,并可以进行动态替换。
如果一个属性在不只一个地方进行了配置,那么,MyBatis 将按照下面的顺序来加载:
1、首先读取在 properties 元素体内指定的属性。
2、然后根据 properties 元素中的 resource 属性读取类路径下属性文件,或根据 url 属性指定的路径读取属性文件,并覆盖之前读取过的同名属性。
3、最后读取作为方法参数传递的属性(Java代码传入)
后面加载的覆盖之前读取过的同名属性。

<properties resource="jdbc.properties">
    <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
    <property name="url" value="url"/>
    <property name="username" value="dev_user"/>
    <property name="password" value="F2Fa3!33TYyg"/>
</properties>

<!--设置-->
<settings>
    <!--MyBatis 打印SQL语句到控制台-->
    <setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>

mybatis环境配置,mybatis支持多种配置,
尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。
所以,如果你想连接两个数据库,就需要创建两个 SqlSessionFactory 实例,每个数据库对应一个。而如果是三个数据库,就需要三个实例,依此类推
default属性配置默认的环境配置id -->

mybatis的环境配置(可以写多个) id属性

配置事务管理器,在 MyBatis 中有两种类型的事务管理器(也就是 type="[JDBC|MANAGED]"):
JDBC – 这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域。
MANAGED –被管理 这个配置几乎没做什么。它从不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。

        <transactionManager type="JDBC"/>
        <!--数据源的配置 type数据源类型,有三种内建的数据源类型(也就是 type="[UNPOOLED|POOLED|JNDI]"):
       UNPOOLED– 这个数据源的实现会每次请求时打开和关闭连接。虽然有点慢,但对那些数据库连接可用性要求不高的简单应用程序来说,是一个很好的选择。 性能表现则依赖于使用的数据库,对某些数据库来说,使用连接池并不重要,这个配置就很适合这种情形
       POOLED– 这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。 这种处理方式很流行,能使并发 Web 应用快速响应请求。
       JNDI – 这个数据源实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的数据源引用。
       -->
        <dataSource type="POOLED">
            <!--驱动 完整类名-->
            <property name="driver" value="${driver}"/>
            <!--数据库连接字符串-->
            <property name="url" value="${url}"/>
            <!--用户名-->
            <property name="username" value="${username}"/>
            <!--密码-->
            <property name="password" value="${password}"/>
        </dataSource>
    </environment>
</environments>
映射器配置

mapper resource=“org/mybatis/example/BlogMapper.xml”
<mapper resource=“com/gx/mapping/SysUserMapper.xml”
<mapper resource=“com/gx/mapping/SysUserMapper2.xml”
<mapper resource=“com/gx/mapping/SysUserAssociationMapper.xml”
<mapper resource=“com/gx/mapping/SysRoleCollectionMapper.xml”
</mappers
</configuration

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值