Mybatis快速入门指南

简介

        在现代的 Java 开发中,持久层框架是不可或缺的一部分。MyBatis 是一个优秀的持久层框架,它简化了数据库操作,提供了强大的 SQL 控制能力。本篇博客将带你快速入门 MyBatis,让你快速上手并开始使用这个强大的框架。
        Mybatis主要对jdbc代码进行了优化:

1.硬编码 -> 配置文件

  1. 可维护性:将数据库连接信息、SQL语句等从代码中硬编码改为配置文件中配置,使得配置更易于修改和管理,降低了修改配置的风险。在项目部署时候,可以不重新部署的情况下,进行配置的修改。

  2. 灵活性:通过配置文件,可以在不修改代码的情况下调整数据访问的行为,实现灵活性配置。

  3. 可重用性:配置文件可以被多个数据访问模块或组件共享,提高了配置信息的复用性。

举例

  1. 数据源配置:将数据库连接信息(如URL、用户名、密码)从代码中硬编码改为MyBatis配置文件中配置,可以方便地修改数据库连接信息而不用修改代码。

  2. SQL语句配置:将SQL语句从代码中硬编码改为MyBatis的Mapper XML文件中配置,可以方便地修改SQL语句而不用修改代码。

2操作繁琐 ->自动完成

好处:

  1. 提高效率:MyBatis提供了自动映射功能,可以将查询结果自动映射到Java对象中,减少了手动处理结果集的工作,提高数据访问的效率。

  2. 减少失误:MyBatis的参数映射功能可以帮助开发人员减少参数传递的错误,提高数据访问的准确性。

  3. 简化开发:MyBatis的注解和XML配置方式可以帮助开发人员简化数据访问层的开发,提高开发效率。

举例:

  • 自动映射结果集:MyBatis可以自动将查询结果映射到Java对象中,减少了手动处理结果集的工作,简化了数据访问代码。

  • 动态SQL:MyBatis提供了动态SQL的功能,可以根据条件动态生成SQL语句,减少了手动拼接SQL语句的工作,提高了开发效率。

通过将配置信息从代码中分离出来,并利用MyBatis的自动映射和动态SQL功能提高数据访问效率,可以使数据访问层的开发工作更加高效、可维护和可靠。这种方式有助于提升数据访问层的质量和效率。

1. 环境搭建

  • 引入 MyBatis 和 Mysql 的依赖
    <!--    mybatis依赖-->
        <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis</artifactId>
          <version>3.5.14</version>
        </dependency>
    <!--    mysql的依赖-->
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>8.0.33</version>
        </dependency>
  • 配置 MyBatis 的数据源
    <?xml version="1.0" encoding="UTF-8" ?>
    <!--引用的 DTD 文件指定了 MyBatis 配置文件的结构和元素约束,
    确保配置文件按照规定的格式编写,这样 MyBatis 解析器就能正确地读取和理解配置文件的内容。-->
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    <!--    定义了数据库连接的环境配置, 将 development 开发环境作为默认环境。-->
        <environments default="development">
            <environment id="development">
    <!--            表示使用 JDBC 进行事务管理-->
                <transactionManager type="JDBC"/>
    <!--            表示使用连接池来管理数据库连接-->
                <dataSource type="POOLED">
    <!--                数据库连接信息-->
                    <property name="driver" value="com.mysql.cj.jdbc.Driver" />
                    <property name="url" value="jdbc:mysql://8.130.10.216:3306/amount" />
                    <property name="username" value="root" />
                    <property name="password" value="521Hx1314" />
                </dataSource>
            </environment>
        </environments><!--    结束数据源和环境配置的定义-->
    <!--    指定了一个 XML 格式的映射文件 amountMapper.xml 的位置。-->
    <!--    加载sql的映射文件-->
        <mappers>
            <mapper resource="AmountMapper.xml"/>
        </mappers>
    </configuration>
  • 编写 MyBatis 的mpper配置文件
    <?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">
    <!-- namespace开启命名空间-->
    <mapper namespace="test">
        <select id="selectAccount" resultType="org.example.pojo.Account" >
            select * from account;
        </select>
    </mapper>
    

    2.创建SqlSession对象执行sql语句
     

    package org.example;
    
    
    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.IOException;
    import java.io.InputStream;
    import java.util.List;
    
    public class App {
        public static void main( String[] args ) {
            //1.加载mybatis的核心配置文件,获取SqlSessionFactory
            String resource = "mybatis_config.xml";
            try {
    //        用于获取类路径下资源的输入流    用于加载 MyBatis 的配置文件或映射文件等资源。
                InputStream inputStream = Resources.getResourceAsStream(resource);
                SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
                //2.获取SqlSession对象,用于执行sql语句
                SqlSession sqlSession = sqlSessionFactory.openSession();
                //3.执行sql
                List<Object> accounts = sqlSession.selectList("test.selectAccount");
                System.out.println(accounts);
                sqlSession.close();
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    }
    

    结语

    通过本篇博客,你应该对如何快速入门 MyBatis 有了一个清晰的了解。希望这篇指南能够帮助你快速上手 MyBatis,并在你的项目中发挥它强大的功能。

    如果你需要更详细的内容或有其他问题,欢迎留言讨论。祝你在学习和使用 MyBatis 的过程中取得成功!

  • 36
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风止￴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值