1。哪些不同类型的IOC方式
IoC,(Inverse of Control)控制反转,其包含两个内容:其一是控制,其二是反转。在程序中,被调用类的选择控制权从调用它的类中移除,转交给第三方裁决。
这个第三方指的就是Spring的容器。IoC另解,依赖注入(Dependency Injection),调用类对被调用类的依赖关系由第三方注入,以移除调用类对被调用类的引用。
2。java的9大内置对象
request
response
pageContext
session
application
out
config
page
exception
3。数据库里面的索引的约束是
索引:加强了查询数据库的速度
约束:可以设置主键约束比唯一约束更严格不能为空
4。mybatis是如何进行分页的?分页的插件的原理是什么?
Mybatis使用RowBounds对象进行分页,它是针对ResultSet结果集执行的内存分页,而非物理分页,可以在sql内直接书写带有物理分页的参数来完成物理分页功能,
也可以使用分页插件来完成物理分页。
分页插件的基础原理是是有mybatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截执行的SQL,让后重写SQL,根据dialect方言,添加对应的物理分页语言
和物理参数。
5.通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?
Dao接口即Mapper接口。接口的全限名,就是映射文件中的namespace的值;接口的方法名,就是映射文件中Mapper的Statement的id值;接口方法内的参数,就是传递给sql的参数。
Mapper接口是没有实现类的,当调用接口方法时,接口全限名+方法名拼接字符串作为key值,可唯一定位一个MapperStatement。在Mybatis中,每一个 <select>、<insert>、<update>、<delete>标签,都会被解析为一个MapperStatement对象。
mapper接口的方法,是不能重载的,因为是使用全限名+方法名的保存和寻找策略。mapper接口的工作原理是jdk动态代理,mybatis运行时会使用jdk动态代理为mapper接口生成代理对象proxy,代理对象会拦截接口方法,转而执行mapperStatement所代表的SQL,让后将SQL执行结果返回。