Mybatis面试题整理(超详细)
<div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post">
????
第2种: 通过
string wildcardname = “%smi% list
string wildcardname = list
Dao接口即Mapper接口。接口的全限名,就是映射文件中的namespace的值;接口的方法名,就是映射文件中Mapper的Statement的id值;接口方法内的参数,就是传递给sql的参数。 Mapper接口是没有实现类的,当调用接口方法时,接口全限名+方法名拼接字符串作为key值,可唯一定位一个MapperStatement。在Mybatis中,每一个 Mapper接口里的方法,是不能重载的,因为是使用 全限名+方法名 的保存和寻找策略。Mapper?接口的工作原理是动态代理,Mybatis运行时会使用JDK动态代理为Mapper接口生成代理对象proxy,代理对象会拦截接口方法,转而执行MapperStatement所代表的sql,然后将sql执行结果返回。
第一种是使用 第二种是使用sql列的别名功能,将列的别名书写为对象属性名。 有了列名与属性名的映射关系后,Mybatis通过反射创建对象,同时使用反射给对象的属性逐一赋值并返回,那些找不到映射关系的属性,是无法完成赋值的。
?然后在java代码中像下面这样执行批处理插入: list
? ????name name =
rows =
system.out.println(“rows inserted = ” + system.out.println(“generated key value = ” + name.getid());
14、在mapper中如何传递多个参数? (1
(2
(3
Map
、 不同的Xml映射文件,如果配置了namespace,那么id可以重复;如果没有配置namespace,那么id不能重复; 原因就是namespace+id是作为Map
?20、MyBatis实现一对一有几种方式?具体怎么操作的?有联合查询和嵌套查询,联合查询是几个表联合查询,只查询一次,?通过在resultMap里面配置association节点配置一对一的类就可以完成; 嵌套查询是先查一个表,根据这个表里面的结果的 外键id,去再另外一个表里面查询数据,也是通过association配置,但另外一个表的查询通过select属性配置。 21、MyBatis实现一对多有几种方式,怎么操作的?
22、Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
?23、Mybatis的一级、二级缓存:
;
24、什么是MyBatis的接口绑定?有哪些实现方式?接口绑定,就是在MyBatis中任意定义接口,然后把接口里面的方法和SQL语句绑定,?我们直接调用接口方法就可以,这样比起原来了SqlSession提供的方法我们可以有更加灵活的选择和设置。 接口绑定有两种实现方式,一种是通过注解绑定,就是在接口的方法上面加上?@Select、@Update等注解,里面包含Sql语句来绑定;另外一种就是通过xml里面写SQL来绑定,?在这种情况下,要指定xml映射文件里面的namespace必须为接口的全路径名。当Sql语句比较简单时候,用注解绑定,?当SQL语句比较复杂时候,用xml绑定,一般用xml绑定的比较多。 25、使用MyBatis的mapper接口调用时有哪些要求?
②??Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同;
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |