什么是MyBatis

什么是myBatis

MyBatis 是一个半自动化的ORM实现,也是一个持久层框架,它在 JDBC 上提供了一个抽象层,简化了 Java 与数据库的交互。

myBatis和jdbc的区别

主要区别如下:

  1. JDBC 需要手动处理 SQL 语句的参数和结果集的映射,而 MyBatis 可以通过 XML 或注解的方式自动完成。

  2. JDBC 对于每个数据库操作都需要编写相应的代码,而 MyBatis 通过配置文件可以复用 SQL 语句。

  3. JDBC 依赖于 Java 代码的硬编码,而 MyBatis 的配置可以是 XML 或注解,使得数据库操作的变动不需要重新编译 Java 代码。

  4. JDBC 对事务管理需要手动处理,而 MyBatis 可以使用其内置的事务管理机制。

ORM是什么以及ORM的优缺点

ORM:对象关系映射(Object Relation Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的技术,简单说,ORM是通过使用描述对象和数据库之间的映射的元数据,将程序中的关系自动化到数据库中。

ORM的优点包括提高开发效率、简化数据库操作、减少对数据库的学习成本,而其缺点则涉及性能问题、复杂的查询处理和额外的内存消耗

优点:

  1. 提高开发效率:ORM通过自动对Entity对象与数据库中的Table进行字段与属性的映射,减少了开发人员编写数据访问层的工作量,从而提高了开发效率。
  2. 简化数据库操作:ORM提供了对数据库的映射,使得开发人员不需要直接编写SQL语句,而是像操作对象一样从数据库获取数据,简化了数据库操作。
  3. 减少对数据库的学习成本:使用ORM框架,开发人员可以专注于业务逻辑的实现,而不需要深入了解数据库的细节,从而减少了学习成本。

缺点:

  1. 性能问题:虽然ORM可以提高开发效率,但它在执行效率上可能会牺牲一些性能。这是因为ORM的自动化映射和对象持久化操作需要消耗系统资源,特别是在处理大数据量、大运算量和复杂查询时,性能问题可能会更加明显。
  2. 复杂的查询处理:在处理多表联查或复杂的where条件查询时,ORM的语法可能会变得复杂且难以管理。这可能会降低系统的灵活性和可维护性。
  3. 额外的内存消耗:ORM在执行对象持久化时,可能会将所有属性持久化到内存中,这可能会消耗更多的内存。特别是在处理大量数据时,这种内存消耗可能会更加显著。

综上所述:ORM提供的多种便利,但是否使用ORM时,需要权衡其带来的便利与可能带来的性能和复杂性问题。

如何使用mybatis

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.3</version>
  </dependency>
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.28</version>
</dependency>

mybatis的配置文件

切记:在XML文件中一定要有头!!!!!!!!!!下面的红色字体

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 环境   default=development   使用的默认的环境的id是development-->
    <environments default="development">
        <environment id="development">
            <!-- 事务管理器-->
            <transactionManager type="JDBC"/>
            <!-- 数据源   type =pooled -->
            <dataSource type="POOLED">
                <!-- basedb  driver mysql8的jar 必须是加cj-->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <!-- mysql8的时候一定要加时区不加的话 时间会错8个小时   2024-5-28 10:53:00 -->
                <property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false&amp;serverTimezone=Asia/Shanghai"/>
                <!-- 连接数据库的名字-->
                <property name="username" value="root"/>
                   <!--                 连接数据库的密码-->
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="org/mybatis/example/BlogMapper.xml"/>
    </mappers>
</configuration>

  • 23
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值