MyBatis框架搭建与代码解读分析

 更新时间:2024年08月29日 15:10:17   作者:苏少朋  
MyBatis是一个灵活的持久层框架,适合与数据库交互,支持自定义SQL和高级映射,这篇文章给大家介绍MyBatis框架搭建与代码解读,感兴趣的朋友跟随小编一起看看吧

前言:

MyBatis是一个灵活的持久层框架,适合与数据库交互,支持自定义SQL和高级映射。搭建MyBatis的基本步骤包括:

  • 环境准备:安装JDK、Maven和IDE。
  • 创建项目:建立Maven项目并设置基本信息。
  • 添加依赖:在pom.xml中引入MyBatis和数据库驱动的依赖。
  • 配置MyBatis:创建mybatis-config.xml文件,配置数据库连接和Mapper。
  • 实现Mapper和模型:编写Mapper接口及其XML文件和对应的模型类。
  • 主程序测试:通过主类测试数据库连接和查询。

完成这些步骤后,可以成功建立一个简单的MyBatis项目,实现与数据库的交互

背景介绍

    mybatis原来是apache下面的一个开源项目,名为ibatis

    2010年开发团队转投Google旗下,更名为MyBatis

MyBatis介绍

   MyBatis是一个优秀的数据持久层框(dao层  数据访问层 数据持久层),也就是在Dao层处理数据

   MyBatis是对jdbc进行封装,避免了jabc中手动设置参数,手动映射结果的操作

   MyBatis将jdbc中的接口进行封装,提供了他自己的类和接口实现

   MyBatis可以使用xml配置和注解的方式,将数据库中记录自动映射到Java对象中,是一种ORM实现(对象关系映射) 将可以自动将数据映射到对象中的这种框架,也成为orm框架

   MyBatis还提供了动态sql和数据缓存

MyBatis搭建

创建一个maven对象导入MyBatis.jar包创建一个全局的MyBatis配置文件创建数据库定义Dao接口,定义方法创建sql映射文件,编写sql测试MyBatis MyBatis官方网址

https://mybatis.org/mybatis-3/zh_CN/index.html

http://官方网址

第一步:创建maven对象

第二步:导入jar包

注:因为mybati是是对mysql的封装,本质上还是与数据的连接操作,所以我们依旧需要导入mysql jar包         

第三步:创建MyBatis配置文件并配置文件 

配置文件:

<?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>
    <!--   MyBatis配置文件-->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
    <!-- 为类配置别名-->
    <typeAliases>
        <!--<typeAlias type="com.kid.mybatispro.model.Admin" alias="Admin"></typeAlias>-->
        <package name="com.kid.mybatispro.model"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <!--type="POOLED" 使用数据库连接池功能-->
            <dataSource type="POOLED">
                <!-- 数据库连接的配置-->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/ssmdb?serverTimezone=Asia/Shanghai"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 注册映射文件-->
    <mappers>
        <mapper resource="mappers/AdminMapper.xml"></mapper>
    </mappers>
</configuration>

数据库连接池(POOED)

链接数据库,每次访问数据时候,创建一个Connection,用完关闭.但访问量大了后,每次都要创建新的连接对象,用完关闭,比较耗时

使用数据库连接池,在池(集合)中事先创建一些连接对象,用户访问时,就直接池中获取一个链接对象,用完不销毁,还回池中.这样就减少频繁创建销毁连接对象

第四步:创建数据库 

 create table admin(
   id int  primary key auto_increment,
   account varchar(20),
   password varchar(20),
   gender CHAR(1)
 )

注:在数据库中填入几组值,方便后面使用 .

第五步:定义接口

package com.kid.mybatispro.dao;
import com.kid.mybatispro.model.Admin;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface AdminDao {
    //单个参数传递
    Admin findAdminById(int id);
    Admin findAdminByAccount(int id);
    //多个参数的传递
    Admin login(@Param("acc") String account, @Param("pass") String password);
    Admin login1(Admin admin);
    // 添加数据
    void insertAdmin(Admin admin);
    void deleteAdmin(int id);
    void updateAdmin(Admin admin);
    int findAdminCount();
    String findAdminId(String account);
    List<Admin> findAdmins();
}

注:接口中定义我们所需的操作

第六步:创建sql映射文件,编写sql

代码:

<?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="接口的地址">
<select id="findAdminById" parameterType="int" resultType="com.ffyc.mybatis.model.Admin">
select * from admin where id = #{id} </select> </mapper>

代码解读:

 注:我们可以在配置文件中为类定义别名

我们就就可以简写为:

第七步:测试MyBatis

第一步:读取配置文件

读取配置文件

Reader reader = Resources.getResourceAsReader("mybatis-config.xml");

mybatis-config.xml---->为我们定义的配置文件名(创建的第一个.xml文件)

第二步:创建 SqlSessionFactory

SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);

read---->上面创建的对象

注:创建 SqlSessionFactory 负责创建SqlSession对象(连接数据库的会话对象,类似Connection) SqlSessionFactory对象只需要创建一次,不需要销毁

 第三步:创建SqlSession

SqlSession sqlSession = sessionFactory.openSession();

第四步:获得接口代理对象

sqlSession.getMapper(接口.class); sqlSession .close();关闭 

代码:

    public static void main(String[] args) throws IOException {
        //MyBatis读取配置文件
        Reader reader = Resources.getResourceAsReader("mybatis.xml");
        //创建 SqlSessionFactory   负责创建SqlSession对象(连接数据库的会话对象,类似Connection)
        //SqlSessionFactory对象只需要创建一次,不需要销毁
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        //创建SqlSession对象
        SqlSession sqlSession = sessionFactory.openSession();
        //创建接口的代理对象
        AdminDao adminDao = sqlSession.getMapper(AdminDao.class);
        Admin admin = adminDao.findAdminById(1); //让代理对象带我们巧用映射文件中与此接口中相同名称的方法
        System.out.println(admin);
    }

到此这篇关于MyBatis框架搭建与代码解读的文章就介绍到这了,更多相关MyBatis框架搭建内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot2.1.3修改tomcat参数支持请求特殊符号问题

    SpringBoot2.1.3修改tomcat参数支持请求特殊符号问题

    最近遇到一个问题,比如GET请求中,key,value中带有特殊符号,请求会报错。接下来通过本文给大家分享解决SpringBoot2.1.3修改tomcat参数支持请求特殊符号 ,需要的朋友可以参考下
    2019-05-05
  • Java语法基础之选择结构的if语句、switch语句详解

    Java语法基础之选择结构的if语句、switch语句详解

    这篇文章主要为大详细介绍了Java语法基础之选择结构的if语句、switch语句,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • MyBatis延迟加载、关联查询与结果映射的实现原理解析

    MyBatis延迟加载、关联查询与结果映射的实现原理解析

    MyBatis通过延迟加载减少冗余查询,支持一对一/一对多关联查询的两种实现方式,并提供灵活的结果映射机制,本文给大家介绍MyBatis延迟加载、关联查询与结果映射的实现原理解析,感兴趣的朋友一起学习吧
    2025-08-08
  • java 将字符串、list 写入到文件,并读取内容的案例

    java 将字符串、list 写入到文件,并读取内容的案例

    这篇文章主要介绍了java 将字符串、list 写入到文件,并读取内容的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Java发起http请求的完整步骤记录

    Java发起http请求的完整步骤记录

    这篇文章主要给大家介绍了关于Java发起http请求的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 关于消息队列如何保证消息的幂等性

    关于消息队列如何保证消息的幂等性

    这篇文章主要介绍了关于消息队列如何保证消息的幂等性,在分布式系统中,消息队列是一个常用的组件,用于解耦发送者和接收者之间的耦合,需要的朋友可以参考下
    2023-04-04
  • centos下安装openjdk21的详细图文教程

    centos下安装openjdk21的详细图文教程

    这篇文章主要介绍了centos下安装openjdk21的相关资料,文章详细介绍了如何手动下载、解压和配置OpenJDK 21,包括下载OpenJDK、上传到指定目录、解压、编辑环境变量和验证安装成功的过程,需要的朋友可以参考下
    2024-12-12
  • 分享Java性能调优的11个实用技巧

    分享Java性能调优的11个实用技巧

    这些建议中的大多数都是基于Java的,但是也不一定,也有一些是可以应用于所有的应用程序和编程语言的。在我们分享基于Java的性能调优技巧之前,让我们先讨论一下这些通用的性能调优技巧
    2017-11-11
  • Java 实现文件批量重命名亲测可用(精简版)

    Java 实现文件批量重命名亲测可用(精简版)

    本文给大家分享一段自己写的java代码实现文件批量重命名,亲测试过没有任何问题,大家可以放心使用
    2016-11-11
  • java数据结构实现双向链表功能

    java数据结构实现双向链表功能

    这篇文章主要为大家详细介绍了java数据结构实现双向链表功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11

最新评论