zoukankan      html  css  js  c++  java
  • 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属性指定

  • 相关阅读:
    springboot 全局异常拦截器,友好异常提示
    java Word 转 PDF格式
    SpringCloud GateWay 使用 网关路由
    spring boot 读写参数到session
    springboot2.5.2 整合 flowable6.6.0 流程引擎
    java 自定义表单 动态表单 表单设计器 工作流引擎 flowable 项目源码
    springboot 运行 jar 包读取外部配置文件
    Spring Boot mybatisconfig 和 log4j 输出sql 日志
    SQL 数据查询语句之字符串拆分
    Enable Script debugging in IE8 at Window 7 operating system
  • 原文地址:https://www.cnblogs.com/fengcha0/p/10119283.html
Copyright © 2011-2022 走看看