Mybatis 笔记

框架

  • 软件框架(software framework),通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。
  • 框架是一个半成品,在半成品的基础上完成自己的业务。本阶段的所有框架都是基于jar包(class文件)和xml配置文件(调用class文件)
  • 三层架构:控制层Servlet、业务逻辑层service、持久层dao

Mybatis

Mybatis是一个基于Java的持久层框架,它内部封装了jdbc,使开发者只需要关注SQL语句本身,而不需要花费精力去处理加载驱动,创建连接,创建statement等繁杂的过程

Mybatis通过xml或注解的方式将要执行的各种statement配置起来,并通过Java对象和statement中SQL的动态参数进行映射生成最终执行的SQL语句,最后由Mybatis框架执行SQL并将结果映射为Java对象并返回

  • Mybatis是dao层的一个框架
  • Mybatis又叫ibatis
  • Mybatis是一个半自动化的ORM框架
    在这里插入图片描述
    优势
    1. 可以简化代码,去除重复繁琐的代码;
    2. 可以自动完成对象和数据库数据的转换;
    3. 支持缓存机制以及动态sql
    4. 支持将表与表之间的关系转换为实体与实体之间的关系

Mybatis框架的工作流程

传统:数据源------>connection------>prepastatemnet----->resultset(jdbc)
Mybatis
加载配置文件 -->sqlSessionFactory---->sqlSession(excutor)------>statement mapper
配置文件(xml格式):全局配置文件(数据源,映射文件,别名)+映射文件(sql语句)
在这里插入图片描述

Mybaits 的mapper代理模式

Mybatis作为dao层的传统开发模式:接口------>实现类

Mapper代理模式:开发人员在遵循mybatis提供的一些规范的前提下,mybatis帮我们自动生成dao接口的实现类。

规范

  1. 映射文件中命名空间等于dao层接口的全路径
<mapper namespace="com.yx.dao1.UserDao">
  1. 映射文件中sql语句的id是dao层接口里的方法名
<select id="selectAll" resultType="com.yx.bean.User">
	select * from user
</select>
  1. 映射文件中输入参数和输出参数的类型和dao层接口里的方法的参数和返回结果保持一致。

Mybaits中参数

parameterType:输入输出参数类型,int、String、对象、List、Map
resultType:返回结果类型,int、String、对象、List、Map
占位符:#{}、${}

  • #{} 等价于占位符?,输入参数是非自定义类型#{任意定义},输入参数是自定义类型#{自定义类型的属性名}
<select id="selectLike" parameterType="user" resultType="com.yx.bean.User">
	select * from user where username like "%"#{
   username}"%" and sex=#{
   sex}
</select>
  • ${}等价于拼接方式,输入参数是非自定义类型(String除外)#{任意定义},输入参数是自定义类型#{自定义类型的属性名},String类型作为输入参数(只有一个参数时)用 ${value}
<select id="selectLike2" parameterType="String" resultType="com.yx.bean.User" >
	select * from user where username like '%${username}%' and sex=#{
   sex}
</select
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值