Mybatis的优缺点及适用场景?

目录

一、什么是Mybatis?

二、Mybatis框架的特点

三、Mybatis框架的优点?

四、MyBatis 框架的缺点?

五、MyBatis 框架适用场合?

六、代码示例 

1. 配置文件 mybatis-config.xml

2. 映射文件 UserMapper.xml 

3. Java 代码 

七、总结 


🎈边走、边悟🎈迟早会好

一、什么是Mybatis?

        Mybatis是一种基于Java语言的持久化框架,它能够让开发人员更加方便地进行数据库操作,同时也能够提高程序的性能和可维护性。下面我们来详细了解一下Mybatis框架的特点、优点和缺点。

二、Mybatis框架的特点

  1. SQL语句的灵活性:在Mybatis框架中,SQL语句是通过XML文件来进行管理的,开发人员可以通过XML文件自由编写SQL语句,从而实现对数据库的灵活操作。
  2. 映射关系的可配置性:Mybatis框架支持将Java对象与数据库表进行映射,开发人员可以通过XML文件来配置Java对象与数据库表之间的映射关系,从而实现对数据库表的操作。
  3. 数据库连接的可管理性:Mybatis框架支持连接池技术,能够对数据库连接进行有效的管理,从而提高程序的性能和可维护性。
  4. SQL语句的可重用性:在Mybatis框架中,可以将SQL语句抽象为一个个可重用的组件,这样可以在不同的SQL语句中重复使用这些组件,从而提高程序的可重用性和可维护性。
  5. 提供多种映射方式:Mybatis框架支持多种映射方式,可以根据不同的需求选择适合的映射方式,比如注解映射、XML映射等。

三、Mybatis框架的优点?

  1. 灵活性高:Mybatis框架采用XML文件来管理SQL语句,开发人员可以根据需要自由编写SQL语句,从而实现对数据库的灵活操作。
  2. 可配置性强:Mybatis框架支持将Java对象与数据库表进行映射,开发人员可以通过XML文件来配置Java对象与数据库表之间的映射关系,从而实现对数据库表的操作。
  3. 易于维护:Mybatis框架将SQL语句抽象为可重用的组件,可以在不同的SQL语句中重复使用这些组件,从而提高程序的可重用性和可维护性。
  4. 性能高:Mybatis框架采用连接池技术,能够对数据库连接进行有效的管理,从而提高程序的性能和可维护性。
  5. 易于集成:Mybatis框架与Spring框架等其他常用框架集成比较容易,可以与其他框架一起使用,从而实现更加高效的开发。
  6. 支持多种数据库:Mybatis框架支持多种数据库,包括Mysql、Oracle、Sql server等,可以根据不同的需求选择适合的数据库。

四、MyBatis 框架的缺点?

  1. SQL 语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL 语句的功底有一定要求。
  2. SQL 语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

五、MyBatis 框架适用场合?

  1. MyBatis 专注于 SQL 本身,是一个足够灵活的 DAO 层解决方案。
  2. 对性能的要求很高,或者需求变化较多的项目,如互联网项目,MyBatis 将是不错的选择。
  3. 复杂查询:当项目需要大量复杂查询时,MyBatis 的直接 SQL 支持非常有用。
  4. 现有数据库:项目使用已有的复杂数据库结构,MyBatis 可以更好地与之集成。

六、代码示例 

1. 配置文件 mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/test"/>
                <property name="username" value="root"/>
                <property name="password" value="password"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/example/mapper/UserMapper.xml"/>
    </mappers>
</configuration>
2. 映射文件 UserMapper.xml 
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper">
    <select id="selectUser" parameterType="int" resultType="com.example.model.User">
        SELECT * FROM users WHERE id = #{id}
    </select>
    <insert id="insertUser" parameterType="com.example.model.User">
        INSERT INTO users (name, age) VALUES (#{name}, #{age})
    </insert>
    <update id="updateUser" parameterType="com.example.model.User">
        UPDATE users SET name = #{name}, age = #{age} WHERE id = #{id}
    </update>
    <delete id="deleteUser" parameterType="int">
        DELETE FROM users WHERE id = #{id}
    </delete>
</mapper>
3. Java 代码 
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.Reader;

public class MyBatisExample {
    public static void main(String[] args) throws Exception {
        String resource = "mybatis-config.xml";
        Reader reader = Resources.getResourceAsReader(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        
        try (SqlSession session = sqlSessionFactory.openSession()) {
            UserMapper mapper = session.getMapper(UserMapper.class);
            
            // 插入用户
            User newUser = new User("John", 25);
            mapper.insertUser(newUser);
            session.commit();
            
            // 查询用户
            User user = mapper.selectUser(newUser.getId());
            System.out.println(user);
            
            // 更新用户
            user.setAge(26);
            mapper.updateUser(user);
            session.commit();
            
            // 删除用户
            mapper.deleteUser(user.getId());
            session.commit();
        }
    }
}

七、总结 

        Mybatis框架是一种基于Java语言的持久化框架,它具有灵活性高、可配置性强、易于维护、性能高、易于集成、支持多种数据库等优点,但是需要开发人员掌握XML文件编写和SQL语句的构建等技术,学习成本较高,开发效率相对较低,需要编写大量的XML配置文件,对初学者不太友好等缺点。因此,在使用Mybatis框架的过程中,需要根据项目的实际需求和开发人员的技术水平来选择合适的持久化框架。

 🌟感谢支持 听忆.-CSDN博客

🎈众口难调🎈从心就好

相关推荐

  1. SpringCloud优缺点适合场景

    2024-07-10 17:52:01       24 阅读
  2. Kafka优点和缺点,以及适用场景

    2024-07-10 17:52:01       17 阅读
  3. Apache和Nginx优缺点各自使用场景

    2024-07-10 17:52:01       44 阅读
  4. 主要数据库类型、特点适用场景

    2024-07-10 17:52:01       43 阅读
  5. SVM中常用核函数适用场景

    2024-07-10 17:52:01       20 阅读
  6. jpa 和 mybatis 优缺点

    2024-07-10 17:52:01       15 阅读
  7. 前端各框架、优缺点应用场景

    2024-07-10 17:52:01       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 17:52:01       5 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 17:52:01       5 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 17:52:01       4 阅读
  4. Python语言-面向对象

    2024-07-10 17:52:01       6 阅读

热门阅读

  1. docker安装tomcat容器

    2024-07-10 17:52:01       11 阅读
  2. 线段树动态开点

    2024-07-10 17:52:01       10 阅读
  3. 代码随想录算法训练营:29/60

    2024-07-10 17:52:01       8 阅读
  4. Postman接口测试工具详解

    2024-07-10 17:52:01       13 阅读
  5. 逻辑回归的损失函数

    2024-07-10 17:52:01       10 阅读
  6. postman接口测试工具详解

    2024-07-10 17:52:01       11 阅读
  7. SQL语法(DQL):SELECT 多表查询之子查询

    2024-07-10 17:52:01       10 阅读
  8. 获取和设置Spring Cookie

    2024-07-10 17:52:01       11 阅读
  9. Spring——配置说明

    2024-07-10 17:52:01       9 阅读
  10. springboot中在filter中用threadlocal存放用户身份信息

    2024-07-10 17:52:01       16 阅读
  11. LDAP技术解析:打造安全、高效的企业数据架构

    2024-07-10 17:52:01       12 阅读
  12. android 替换设置-安全里面的指纹背景图片

    2024-07-10 17:52:01       14 阅读