MyBatis框架及使用过程详解

文章目录一、ORM框架二、MyBatis框架运行流程一、ORM框架MyBatis属于ORM(对象关系映射Object Relational Mapping)框架。O->R把一个java对象保存到数据库中的一行记录R->O把数据库里面的一行记录封装成一个java对象二、MyBatis框架运行流程MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可
摘要由CSDN通过智能技术生成

一、ORM框架

MyBatis属于ORM(对象关系映射Object Relational Mapping)框架

  • O->R
    把一个java对象保存到数据库中的一行记录
  • R->O
    把数据库里面的一行记录封装成一个java对象

二、MyBatis框架运行流程

  • MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。
  • MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。
  • MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象,实际就是普通的JavaBean)为数据库中的记录。
  • 1、mybatis配置:
    SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息
    mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载
  • 2、通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂
  • 3、由会话工厂创建SqlSession即会话,操作数据库需要通过SqlSession进行
  • 4、mybatis 底层自定义了Executor执行器接口 操作数据库,Executor接口有两个实现,一个是基本执行器,一个是缓存执行器
  • 5、Mapped Statement也是mybatis一个底层封装对象,它包装了mybatis配置信息及sql映射信息等。mapper.xml文件中一个sql对应一个Mapped Statement对象,sql的id即是Mapped Statement的id
  • 6、Mapped Statement 对sql执行输入参数进行定义,包括HashMap、基本类型、POJO,Executor通过Mapped Statement在执行sql前将输入的java对象映射至sql中,输入参数映射就是jdbc编程中对preparedStatement设置参数
  • 7、Mapped Statement 对sql执行输出结构进行定义,包括HashMap、基本类型、POJO,Executor通过Mapped Statement在执行sql后将输出结果映射至java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程

三、MyBatis运行

1、配置文件

1.1 全局配置文件.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>

	<settings>
		<!-- 下划线字段对应实体类驼峰命名 数据库表:banji_id 映射到类里面:banjiId -->
		<setting name="mapUnderscoreToCamelCase" value="true"/>
	</settings>

	<typeAliases>
		<!--
        <typeAlias alias="Student" type="com.situ.mybatis.entity.Student"/>
        <typeAlias alias="Banji" type="com.situ.mybatis.entity.Banji"/> -->
		<!-- 扫描包里面的类,批量起别名,别名即类名,不区分大小写 -->
		<package name="com.study.mybatis.entity"/>
	</typeAliases>

	<environments default="development">
		<environment id="development">
			<!-- 使用JDBC的事物管理 -->
			<transactionManager type="JDBC"/>
			<!-- 配饰数据库连接池 -->
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver"/>
				<property name="url" value="jdbc:mysql://localhost:3306/java?characterEncoding=UTF-8"/>
				<property name="username" value="root"/>
				<property name="password" value="123456"/>
			</dataSource>
		</environment>
	</environments>
	
	
	<!-- 加载映射文件 -->
	<mappers>
		<mapper resource="com/study/mybatis/entity/StudentMapper.xml"/>
		<mapper resource="com/study/mybatis/entity/BanjiMapper.xml"/>
	</mappers>
</configuration>

1.2 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="student">
    <!--映射  数据库中表的属性名改变(如name->student_name),将改变的名称进行映射-->
    <!--使用映射,后序resultType需要更改-->
    <resultMap id="studentMap" type="Student">
        <!--id和result没有区别, id用来表示主键-->
        <!--column数据库中字段的名称,也可能是起的别名-->
        <!--property对应表-->
        <id column="id" property="id"/>
        <result column="student_name" property="name"/>  <!--单表情况下只写这条也没区别-->
        <result column="age" property="age"/>
        <result column="gender" property
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值