• MyBatis


    1.  背景 jdbc存在的问题

      1、 数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。

      2、 Sql语句在代码中硬编码,造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。

      3、 使用preparedStatement向占有位符号传参数存在硬编码,因为sql语句的where条件不一定,可能多也可能少,修改sql还要修改代码,系统不易维护。

      4、 对结果集解析存在硬编码(查询列名),sql变化导致解析代码变化,系统不易维护,如果能将数据库记录封装成pojo对象解析比较方便。

    2.  对于MyBatis的理解 

      1. mybatis是一个持久层框架, 作用是跟数据库交互完成增删改查

      2.原生Dao实现(需要接口和实现类)

      3.动态代理方式(只需要接口)

        mapper接口代理实现编写规则:

        1) 映射文件中namespace要等于接口的全路径名称

        2) 映射文件中sql语句id要等于接口的方法名称

        3) 映射文件中传入参数类型要等于接口方法的传入参数类型

        4) 映射文件中返回结果集类型要等于接口方法的返回值类型

      4. #{}占位符:占位

        如果传入的是基本类型,那么#{}中的变量名称可以随意写

        如果传入的参数是pojo类型,那么#{}中的变量名称必须是pojo中的属性

      5. ${}拼接符:字符串原样拼接

        如果传入的是基本类型,那么${}中的变量名必须是value

        如果传入的参数是pojo类型,那么${}中的变量名称必须是pojo中的属性

        注意:使用拼接符有可能造成sql注入,在页面输入的时候可以加入校验,不可输入sql关键字,不可输入空格

      6. 映射文件:

        1)传入参数类型通过parameterType属性指定

        2)返回结果集类型通过resultType属性指定

  • 相关阅读:
    升级edk2源码的一点补充
    关于Ubuntu系统忘记密码的解决方法合集
    UEFI Shell 下的程序设计
    Windows下EDK2环境的搭建以及经典的程序设计Print Hello World !-----(Linux下的待后续熟练了再更新)
    一个刚入行的BIOS工程师的自我简介
    反爬虫,非标准的json格式解析
    Scrapy+selenium爬取简书全站-爬虫
    Scrapy
    Python 爬取豆瓣电影Top250排行榜,爬虫初试
    Linux(Ubuntu) MySQL数据库安装与卸载
  • 原文地址:https://www.cnblogs.com/fengcha0/p/10119283.html
Copyright © 2020-2023  润新知