MyBatis框架知识点总结

本文详细介绍了MyBatis框架,包括其作为持久层框架的概述、配置方法、动态代理Dao开发、动态SQL的使用,以及延迟加载和缓存机制。重点讲解了动态SQL的where、if和foreach标签,以及一级和二级缓存的工作原理。
摘要由CSDN通过智能技术生成

新手上路#3

**

一、MyBatis框架概述

1.MyBatis是一个持久层框架(DAO框架),是对JDBC的封装,使得开发者只需要关注
SQL语句(业务)本身即可,无需开发者处理加载驱动、获取连接、创建Statement等繁琐的操作。
2.MyBatis最大的特点是把SQL语句卸载XML配置文件中。
3.MyBatis是一个实现类ORM思想的持久层框架
ORM(Object/Relation Mapping)对象/关系映射:
将数据库中的关系数据表映射为java中的对象,吧对数据表的操作转换为对对象的操作,实现面向对象编程。
%总结%:MyBatis框架是一个半自动的ORM持久层框架,可以在java中实现以面向对象的方式操作数据库,但是需要我们自己编写SQL语句。

**

二、MyBatis配置

mybatis-cofigxml配置

1.放在src下

<configuration>
		<environments>
				<enviroment>
						<transactionManager>
						<dataSource>
								<property>
<mappers>

2.设置类的别名
TypeAliases标签

3.mappers标签
用来注册SQL映射文件


xxxMapper.xml
id 值唯一,用来标识唯一的sql语句 使用时,建议和namespace的值组合 例如:test.id resultType:结果集封装的类型
parameterType:参数的数据类型
SQL语句中的取参数语法:#{基本类型 任意命名}
resultMap:
(1).当数据表列名和类中属性名不一致时,Mybatis无法自动配置,需要手动配置映射(给字段起别名)


模糊查询#{}和 $ {}的方式
1.使用#{}得原理是占位符,而$ 的原理为字符串拼接的方式。使用#{}可以防止sql注入。
2.如果使用${}时,传入的参数是引用类型,那么 $ {对象的属性名}。
3.能使用#就不使用$。


三、动态代理Dao开发方式

1.定义一个Mapper接口,这个接口其实和我们定义的Dao接口是一样的,从Mybatis框架中拿到一个代理
对象(代理的是这个Mapper接口),通过代理对象调用接口中的方法完成业务。
2.Mapper动态dao开发遵循的规范
SQL映射文件的namespac鼻血和Mapper接口的全限定类名完全一致;
mapper接口中方法名必须和XML中SQL语句的id保持一致;
mapper接口中方法的参数类型必须和SQL语句的parameterType类型保持一致;
mapper接口中方法返回值必须和SQL语句的resultType类型保持一致

**

四、动态SQL

1.什么是动态SQL
(1).动态SQL极大的简化了SQL语句的拼装操作。
(2).动态SQL元素和使用JSTL或其他类似XML的标签类似。
(3).动态SQL就是通过一系列的标签运算来完成判断,进行SQL语句的拼装。

2.where标签,处理SQL语句,自动添加where关键字,并去掉紧跟它后面的一个and或者or;
if标签,test属性,判断表达式真假。

<mapper namespace="com.wojia.mapper.UsersMapper">
 <select id="findUser" resultType="users" parameterType="users"> SELECT * FROM t_user
  <where>
  <if test="id!=0">
   or id=#{id} 
   </if>
   <if
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值