广告
返回顶部
首页 > 资讯 > 精选 >MyBatis基本配置和执行的示例分析
  • 622
分享到

MyBatis基本配置和执行的示例分析

mybatis 2023-05-30 21:05:02 622人浏览 安东尼
摘要

这篇文章主要介绍mybatis基本配置和执行的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.MyBatis简介MyBatis 是一款优秀的持久层框架,它支持定制化 sql、存储过程以及高级映射。MyBat

这篇文章主要介绍mybatis基本配置和执行的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1.MyBatis简介

MyBatis 是一款优秀的持久层框架,它支持定制化 sql、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

2. MyBatis的主要构件及其作用

 从MyBatis代码实现的角度来看,MyBatis的主要的核心部件有以下几个:

  • SqlSession            作为MyBatis工作的主要顶层api,表示和数据库交互的会话,完成必要数据库增删改查功能

  • Executor              MyBatis执行器,是MyBatis 调度的核心,负责SQL语句的生成和查询缓存的维护

  • StatementHandler   封装了JDBC Statement操作,负责对JDBC statement 的操作,如设置参数、将Statement结果集转换成List集合

  • ParameterHandler   负责对用户传递的参数转换成JDBC Statement 所需要的参数,

  • ResultSetHandler    负责将JDBC返回的ResultSet结果集对象转换成List类型的集合;

  • TypeHandler          负责java数据类型和jdbc数据类型之间的映射和转换

  • MappedStatement   MappedStatement维护了一条<select|update|delete|insert>节点的封装, 包括sql输入语句,输出参数,输出结果等。

  • SqlSource            负责根据用户传递的parameterObject,动态地生成SQL语句,将信息封装到BoundSql对象中,并返回

  • BoundSql             表示动态生成的SQL语句以及相应的参数信息

  • Configuration        MyBatis所有的配置信息都维持在Configuration对象之中。

整个流程图大致如下:

MyBatis基本配置和执行的示例分析

3.Mybatis的简单搭建步骤

1、mybatis配置

  myBatis-config.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息,包括数据源,事务管理,数据库环境配置。

简单的例子如下:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""Http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><typeAliases><package name="com.java1234.model"/></typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="jdbc.driverClassName" value="com.mysql.jdbc.Driver"/><property name="jdbc.url" value="jdbc:Mysql://localhost:3306/db_mybatis"/><property name="jdbc.username" value="root"/><property name="jdbc.passWord" value="941013"/></dataSource></environment></environments><mappers><package name="com.java1234.mappers"/></mappers></configuration>

  mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要SqlMapConfig.xml中加载。

简单例子如下:

Mapper接口:

public interface StudentMapper {public int add(Student student);public int update(Student student);public int delete(Integer id);public Student findById(Integer id);public List<Student> find();}

Mapper.xml文件

<mapper namespace="com.java1234.mappers.StudentMapper"><resultMap id="StudentResult" type="Student"><id property="id" column="id"></id><result property="name" column="name"></result><result property="age" column="age"></result></resultMap><!--增加学生 --><insert id="add" parameterType="Student" >insert into t_student values(null,#{name},#{age})</insert></mapper>

  通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂

private static SqlSessionFactory sqlSessionFactory;inputStream=Resources.getResourceAsStream("mybatis-config.xml");sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);

  由会话工厂创建sqlSession即会话,操作数据库需要通过sqlSession进行。

SqlSession sqlSession=sqlSessionFactory.openSession();

  mybatis底层自定义了Executor执行器接口操作数据库,Executor接口有两个实现,一个是基本执行器、一个是缓存执行器。

  Mapped Statement也是mybatis一个底层封装对象,它包装了mybatis配置信息及sql映射信息等。mapper.xml文件中一个sql对应一个Mapped Statement对象,sql的id即是Mapped statement的id。

  Mapped Statement对sql执行输入参数进行定义,包括HashMap、基本类型、pojo,Executor通过 Mapped

Statement在执行sql前将输入的java对象映射至sql中,输入参数映射就是jdbc编程中对preparedStatement设置参数。

  Mapped Statement对sql执行输出结果进行定义,包括HashMap、基本类型、pojo,Executor通过 Mapped Statement在执行sql后将输出结果映射至java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。

下面看下mybatis的基本配置和执行

准备mybatis的jar包:mybatis-3.2.8.jar

   准备数据库jar包(我用的是mysql):mysql-connector-java-3.1.12-bin.jar

准备mybatis的主配置文件:mybatis-config.xml

项目架构看图,其中jdbc.propertis为数据库连接配置文件

MyBatis基本配置和执行的示例分析

以上是“MyBatis基本配置和执行的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: MyBatis基本配置和执行的示例分析

本文链接: https://www.lsjlt.com/news/221346.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MyBatis基本配置和执行的示例分析
    这篇文章主要介绍MyBatis基本配置和执行的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.MyBatis简介MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBat...
    99+
    2023-05-30
    mybatis
  • bootstrap基本配置的示例分析
    这篇文章主要为大家展示了“bootstrap基本配置的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“bootstrap基本配置的示例分析”这篇文章吧。B...
    99+
    2022-10-19
  • CentOS中DNS基本和高级配置的示例分析
    这篇文章主要为大家展示了“CentOS中DNS基本和高级配置的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CentOS中DNS基本和高级配置的示例分析”这篇文章吧。DNS服务器工作原理...
    99+
    2023-06-10
  • redis基础配置的示例分析
    这篇文章将为大家详细讲解有关redis基础配置的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Redis的ms主从集群作用:1、主从备份防止宕机2、读写分离,分担...
    99+
    2022-10-19
  • 在IDEA中maven配置MyBatis的示例分析
    这篇文章给大家分享的是有关在IDEA中maven配置MyBatis的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一.MyBatis简介1)MyBatis 是一款优秀的持久层框架2)MyBatis 避免了...
    99+
    2023-06-20
  • mybatis项目配置文件的示例分析
    这篇文章给大家分享的是有关mybatis项目配置文件的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。mybatis项目配置首先这事一个简单的mybatis项目配置文件:&...
    99+
    2022-10-18
  • MySQL中MHA基本配置及注释的示例分析
    这篇文章主要介绍MySQL中MHA基本配置及注释的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!#**************************************...
    99+
    2022-10-18
  • 本地Yum源配置的示例分析
    这篇文章主要介绍了本地Yum源配置的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 本地Yum源配置 一、网络源yum ...
    99+
    2022-10-19
  • MongoDB数据库安装配置、基本操作的示例分析
    小编给大家分享一下MongoDB数据库安装配置、基本操作的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:1、简...
    99+
    2022-10-18
  • vue-cli基础配置及webpack配置修改的示例分析
    这篇文章主要为大家展示了“vue-cli基础配置及webpack配置修改的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue-cli基础配置及webp...
    99+
    2022-10-19
  • Xamarin.Forms中基本页面和基本视图的示例分析
    这篇文章将为大家详细讲解有关Xamarin.Forms中基本页面和基本视图的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Xamarin.Forms的基本页面和基本视图在Xamarin.Forms...
    99+
    2023-06-04
  • 基于mybatis逆向工程的示例分析
    这篇文章给大家分享的是有关基于mybatis逆向工程的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用mybatis生成逆向工程的详细步骤,我个人感觉这个是最简单的一个了,虽然网上有很多种的方法来生成逆...
    99+
    2023-05-30
    mybatis
  • tsconfig.json配置的示例分析
    这篇文章主要为大家展示了“tsconfig.json配置的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“tsconfig.json配置的示例分析”这篇文...
    99+
    2022-10-19
  • IPTABLES配置的示例分析
    这篇文章将为大家详细讲解有关IPTABLES配置的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Iptables配置实例:  Iptables配置的目的,一个是防止公网的入侵,一个是让内...
    99+
    2023-06-13
  • VS2003配置的示例分析
    这篇文章给大家分享的是有关VS2003配置的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。下面为介绍VS2003配置的全过程:(1) 直接安装VS2003(2) 安装VS2003 SP1补丁,下载地址如下...
    99+
    2023-06-17
  • VSFTP配置的示例分析
    这篇文章主要介绍了VSFTP配置的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用rpm命名可顺利安装该软件包。 # rpm -ivh vsftpd-2.0.1-5...
    99+
    2023-06-13
  • JavaScript中执行上下文和执行机制的示例分析
    这篇文章主要介绍JavaScript中执行上下文和执行机制的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!线程和进程说js中的执行上下文和js执行机制之前我们来说说线程和进程...
    99+
    2022-10-19
  • Javascript中执行new的示例分析
    这篇文章主要为大家展示了“Javascript中执行new的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Javascript中执行new的示例分析”这篇文章吧。说明在内存中创造新的空对...
    99+
    2023-06-20
  • MySQL执行计划的示例分析
    这篇文章主要介绍了MySQL执行计划的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。执行计划是什么执行计划,简单的来说,是SQL在数...
    99+
    2022-10-18
  • AngularJS执行流程的示例分析
    这篇文章主要介绍了AngularJS执行流程的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一.启动阶段浏览器解析HTML页面,读取...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作