• Mybatis框架


    #{}和${}的区别是什么?

    ${}是properties文件中的变量的占位符,他可以用于标签属性值和sqi内部,属于静态文本替换

    #{}是sql参数的占位符

    xml映射文件中,除常见的select、insert、update、delete标签之外还有哪些标签?

    还有很多比如:<resultMap><parameterMap><sql><include><selectKey>等等

    在实践中,通常一个xml映射文件,都会写一个Dao接口与之对应,这个Dao接口的原理是什么?Dao接口里面 的方法参数不同时,方法可以重载吗?

    Dao接口就是我们常说的Mapper接口,接口的全限名就是xml文件中namespace的值,接口 的方法名就是映射文件中MappedStatement的id值,接口方法内的参数就是传递给sql的参数。Mapper接口是没有实现类的,当调用接口时的方法时,接口全限名+方法名拼接字符串作为key值,可以唯一定位一个MappedStatement,因此是不能重载的

    MyBatis是如何进行分页的?分页插件的原理是什么?

    Mybatis使用RowBounds对象进行分页,他是针对resultSet结果集执行的内存分页,而不是物理分页,可以在sql内直接书写带有物理分页的参数来完成物理分页功能,也可以使用分页插件来完成物理分页

    分页插件的基本原理是使用Mybatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的sql,然后重写sql,根据dialect方言,添加对应的物理分页语句和物理分页参数

    Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?

    Mybatis仅支持association关联对象和collection关联集合对象的延迟加载,assocation指一对一,collection指的就是一对多查询,在Mybatis配置问价中可以配置是否启用延迟加载lazyLoadingEnable=treu/false

  • 相关阅读:
    PHP 日期的时区差异
    c++与c输出输入语句时空区别
    数据库中完整性约束的SQL定义几点小解
    字符的一字节8位问题
    C#抽象类
    SQL server 中SUBSTRING()以及CONVERT()的用法
    关于CS模式下,控制一个容器内控件的值问题
    新的公司新的感受
    小生谈字符串的截取函数SubString()仅限csharp语言
    LINQ中怎么使用NEWID()之自我学习与理解
  • 原文地址:https://www.cnblogs.com/juddy/p/14071397.html
Copyright © 2020-2023  润新知