mybatis学习思维导图——附b站视频网址和百度网盘(来自动力节点)

目录

介绍

    三层架构

    mybatis框架

mybatis实战

    框架的使用方式

    mybatis框架的使用步骤:

    mybatis的传参数

    #和$区别

    mybatis封装sql语句的执行结果

    表的列名和java对象的属性名称不一样

    模糊查询Like使用

    动态sql

    mybatis主配置文件的配置内容

    PageHelp

动力节点资源百度网盘


介绍


    三层架构

        1.视图层,界面层
            接收用户的请求,调用业务层处理请求
                springmvc
        2.业务逻辑层
            计算数据,处理请求,对应的service包
                spring
        3.持久层
            操作数据的,对数据执行增删改查
                mybatis


    mybatis框架

       主要功能:执行数据库的操作,完成对数据的增删改查;看做是jdbc的升级版本
        特色
            1.执行数据库的增删改查,可以只关心sql语句如何编写
            1.sql mapps: sql映射,mybatis可以把表中的数据转为一个java对象。 把表和java对象对应起来

mybatis实战


    框架的使用方式

        1.通过sql的id,使用SqlSession对象,执行sql语句
        2.使用自定义的dao对象。
        3.使用mybatis 的代理对象
            使用SqlSession.getMapper()获取一个dao对象,通过这个dao对象执行方法就能访问数据库了
            核心是mybatis创建的dao,也是调用SqlSession的方法执行sql语句


    mybatis框架的使用步骤:

        1.实体类:使用实体类表示表中的数据:表中的一行数据就相当于是一个实体类对象
        2.定义dao接口:定义方法,方法表示要执行的数据操作, 方法名称应该和mapper文件中的id一样
        3.定义mapper文件,是一个xml文件,编写sql语句
        4.定义mybatis主配置文件:1)定义数据源DataSource;2)指定mapper文件的位置
        5.mybatis执行sql语句的核心对象:SqlSession,  使用SqlSession的方法执行sql语句, 使用SqlSessionFactory的openSession()方法获取SqlSession对象


    mybatis的传参数

        从java程序把数据传入到mapper的文件的sql语句
        1.dao方法有一个简单类型的参数,在mapper文件中,使用#{任意字符串}
        2.使用@Param注解给参数命名, 在mapper文件,使用#{自定义的名称}
        3.使用java对象传参, 在mapper文件中, 使用#{java对象属性名称}
        4.使用参数的位置, 在mapper文件,#{arg位置值,从0开始}
        5.使用map, #{map的key}


    #和$区别

        1.#是占位符,使用?做占位符合,mybatis内部使用PreparedStatement对象执行sql语句,效率高
        2.#表示列的值, 一般是放在等号的右侧使用
        3.$是字符串代理连接, 把sql语句和 ${}位置的值连接在一起
        4.$所表示的内容是原样替换的
        5.$使用的sql语句,mybatis使用的是Statement对象执行sql的
        6.$一般是替换表名,列名, 部分sql语句的


    mybatis封装sql语句的执行结果

        mybatis执行sql语句后,把ResultSet转为java对象,mybatis负责创建对象,给属性赋值
        1.resultType: 在<select>标签中使用的,把查询的结果转为java对象的类型
            1.java类型的全限定名称
            2.别名
        2.resultMap: 自定义列名和属性名称的对应关系
            1.先使用<resultMap> 定义列和属性对应关系
            2.在<select resultMap="定义好的名称"> 


    表的列名和java对象的属性名称不一样

        1.使用resultMap指定列名和属性名称的对应
        2.使用resultType通过别名的方式,指定别名和属性名称对应一致


    模糊查询Like使用

        1.在java代码中指定模糊查询的内容,例如 "%李%", 然后把这个值传入到sql语句中
        2.在sql语句中拼接like的内容, 方式  where name like "%"空格#{name}空格"%"


    动态sql

        通过在mapper中,使用标签,通过条件生成不同的sql语句,主要是控制where 条件部分
        <if test="boolean条件">: 当条件为true,把sql语句加入到主sql中
        <where> :where里面是if, 当if条件有一个满足,在主sql语句加入 where 关键字和条件
        <foreach>
            1.循环基本类型,例如List<Integer>
            2.循环对象类型,例如List<Student>


    mybatis主配置文件的配置内容

        1.settings中可以配置日志
        2.配置别名<typeAliases>
            1.typeAlias : 一次只能给一个java类型配置别名
            2.package : 把一个包中的所有类作为别名。 类名就是别名
        3.dataSource:配置数据源
        4.配置mapper文件的位置
            1.使用<mapper resource="com/bjpowernode/dao/StudentDao.xml"/>
            3.使用<package name="包名,例如com.bjpowernode.dao"/>
        5.使用属性配置文件(.properties)
            1.定义属性配置文件,在resources目录下创建 jdbc.properties
            2.属性配置文件中,定义key=value
            3.在mybatis主配置文件中, 使用<proper resource="类路径之下的jdbc.properties"/>
            4.在需要使用值的地方,语法 ${key}


    PageHelp

        是一个插件,给sql语句增加分页功能的。 在我们的sql语句之后,通过插件加入 limit这样的语句
        使用步骤:
            1.加入依赖
            2.在mybatis主配置文件中,加入plugin:
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor" />
</plugins>
            3.在你的查询方法之前加入 PageHelper.startPage(第一页,每页几行数据)
 

动力节点资源百度网盘

链接:https://pan.baidu.com/s/1VLVVfXOppPBbOQLzmpgHDA 
提取码:kpxo

mybatisB站视频地址:2020最新MyBatis教程【IDEA版】-MyBatis从入门到精通_哔哩哔哩_bilibili如果你所做的项目业务比较复杂,那么在DAO层可以考虑使用MyBatis框架,MyBatis本是apache的一个开源项目iBATIS,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。https://www.bilibili.com/video/BV185411s7Ry?p=12&share_source=copy_web

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我超(菜鸡版)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值