zoukankan      html  css  js  c++  java
  • mybatis

    一. mybatis的介绍

    mybatis 半自动映射框架,在查询关联对象或关联集合对象时,需要手动编写 sql 来完成,所以,称之为半自动 ORM 映射工具。

    可以编写原生态sql,可以严格执行sql的执行性能,但是过于依赖数据库,数据库移植性差,不能随意更换数据库。

    二.#{}和${}的区别是什么

    #{}是预编译处理,${}字符串替换

    处理#{}的时候会把sql中的#{}替换成?号,调用 PreparedStatement 的set 方法来赋值;

    在处理${}时,就是把${}替换成变量的值

    使用#{}可以有效的防止 SQL 注入
     
    三.Dao 接口的工作原理是什么
    Mapper 接口里的方法,是不能重载的,因为是使用 全限名+方法名 的保存和寻
    找策略。Mapper 接口的工作原理是 JDK 动态代理,Mybatis 运行时会使用 JDK
    动态代理为 Mapper 接口生成代理对象 proxy,代理对象会拦截接口方法,转而
    执行 MapperStatement 所代表的 sql,然后将 sql 执行结果返回。
     
    四.mybatis的批量插入
    insert into table (id,name) values
    <foreach collection='list' item='item' sperator=','> 
     (#{item.id},#{item.name})
    </foreach>
     
     五.mybatis插入返回主键
    <insert id=”insertname” usegeneratedkeys=”true” keyproperty=”
    id”>
    insert into names (name) values (#{name})
    </insert>
     
    六.Mybatis 的 Xml 映射文件中,不同的 Xml 映射文件,id 是否可以重复?
    不同的 Xml 映射文件,如果配置了 namespace,那么 id 可以重复;如果没有配
    置 namespace,那么 id 不能重复;
     
    七.mybatis的一级/二级缓存
    一级缓存是针对不同的sqlSession级别的
    二级缓存是针对mapper级别的,跨sqlSession,
    spring 没有事务 一级缓存会失效 ,是因为是不同的sqlSession
    有事务 是同一个sqlSession,一级缓存有效
     
     
     
     
     
  • 相关阅读:
    MT9v024总结
    常用芯片电路知识汇总
    octopress 如何添加youku视频和本地视频(octopress how to add a youku video or a local video)
    MT9M021/MT9M031总结
    TC358746AXBG/748XBG 桥接器说明
    mipi 调试经验
    1‘b0 什么意思
    MIPI总结和MIPI规格说明书
    octopress添加回到顶部按钮
    CentOS软件安装目录查找
  • 原文地址:https://www.cnblogs.com/javatk/p/15506954.html
Copyright © 2011-2022 走看看