Spring,SpringMVC,MyBatis(第四节Mybatis的配置)

什么是Mybatis?

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

MyBatis简介

作用:封装了JDBC操作,简化数据库访问代码

 

封装功能如下:

 

--封装了获取连接,执行SQL,释放连接

 

--封装了SQL参数设置(参数Emp)

 

   insert into emp (name,age)

 

    values(#{name},#{age})

 

--封装了记录映射成实体对象过程

 

--(实体类属性名与查询结果集 ResultSet中列名保持一致)

 

开发者的主要工作:写SQL和实体类,然后使用SQLsession对象执行SQL操作

Mybatis体系结构

Mybatis体系结构主要由以下几个关键部分

加载配置

-配置有两种形式,一种是xml配置文件,另一种是java代码的注解,MyBatis将SQL的配置信息加载成为一个个的MappedStatement对象(包括了传入参数映射配置,执行的SQL语句、结果映射配置),并将其存储在内存中

SQL解析

-当API接口层接收到调用请求时,会接受到传入SQL的ID和传入对象(可以是Map,JavaBean或者基本数据类型),MyBatis会根据SQL的ID找到对应的MappedStatement进行解析,解析后可以得到最终要执行的SQL语句和参数。

SQL执行

-将最终得到的SQL和参数拿到数据库进行执行,得到操作数据库的结果。

结果映射

-将操作数据库的结果按照映射的配置进行转换,可以转换成HashMap、JavaBean或者基本数据类型,并将两最终结果返回。

Mybatis配置文件

Mybatis框架的XML配置文件包含下面两种类型

SqlMapConfig_xml(1个)

主要配置文件,用于指定数据库连接参数和框架参数

SqlMap.xml(n个)

映射定义文件,用于定义SQL语句和映射信息

MyBatis配置文件

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>
   <settings>
   <setting name="mapUnderscoreToCamelCase" value="true"/>
   </settings>
   <typeAliases>
     <package name="com.atguigu.cusc"/>
   </typeAliases>
  </configuration>
映射器(mappers)

既然 MyBatis 的行为已经由上述元素配置完了,我们现在就要定义 SQL 映射语句了。但是首先我们需要告诉 MyBatis 到哪里去找到这些语句。 Java 在自动查找这方面没有提供一个很好的方法,所以最佳的方式是告诉 MyBatis 到哪里去找映射文件。你可以使用相对于类路径的资源引用, 或完全限定资源定位符(包括 file:/// 的 URL),或类名和包名等。例如:

<!-- 使用相对于类路径的资源引用 -->

<mappers>

<mapper resource="org/mybatis/builder/AuthorMapper.xml"/>

<mapper resource="org/mybatis/builder/BlogMapper.xml"/>

<mapper resource="org/mybatis/builder/PostMapper.xml"/>

</mappers>

<!-- 使用完全限定资源定位符(URL) -->

<mappers>

<mapper url="file:///var/mappers/AuthorMapper.xml"/>

<mapper url="file:///var/mappers/BlogMapper.xml"/>

<mapper url="file:///var/mappers/PostMapper.xml"/>

</mappers>

<!-- 使用映射器接口实现类的完全限定类名 -->

<mappers>

<mapper class="org.mybatis.builder.AuthorMapper"/>

<mapper class="org.mybatis.builder.BlogMapper"/>

<mapper class="org.mybatis.builder.PostMapper"/>

</mappers>

<mapper>

<insert id="addDept" parameterType="Dept" insert into DEPT(DEPTNO,DNAME,LOC) values (#{deptno},#{dname},#{loc})>

</insert>

<select id="findAll1" resultMap="deptMap">

   select DEPTNO,DNAME.LOE from DEPT

</select>

  <resultMap id="deptMap" type="com.dalu.sui.Dept1">

  <result property="no" column="DEPTNO"/>

  <result property="name" column="DNAME"/>

  <result property="loc" column="LOC"/>

</resultMap>

</mapper>

Mybatis流程图

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值