aoa电子体育竞技:java培训:MyBatis 关连口试题分享

   刊发时间:2022-03-07 16:19:50   来源:aoa官方体育 作者:aoa官方体育平台

  1、Mybatis是一个半ORM(对象合连照射)框架,它内部封装了JDBC,拓荒时只必要合切SQL语句自身,不必要花费元气心灵行止理加载驱动、创修连绵、创修statement等繁杂的流程。轨范员直接编写原生态sql,可能厉厉管造sql实行本能,灵巧度高。

  2、MyBatis 可能利用 XML 或说明来装备和照射原生音信,将 POJO照射成数据库中的纪录,避免了险些全数的 JDBC 代码和手动修树参数以及获取结果集。

  3、通过xml 文献或说明的办法将要实行的各类 statement 装备起来,并通过java对象和 statement中sql的动态参数举办照射天生最终实行的sql语句,终末由mybatis框架实行sql并将结果照射为java对象并返回。(从实行sql到返回result的流程)。

  1、基于SQL语句编程,相当灵巧,不会对运用轨范或者数据库的现有策画酿成任何影响,SQL写正在XML里,破除sql与轨范代码的耦合,便于团结照料;供应XML标签,接济编写动态SQL语句,并可重用。

  2、与JDBC比拟,删除了50%以上的代码量,袪除了JDBC多量冗余的代码,不必要手动开相干绵;

  3、很好的与各类数据库兼容(由于MyBatis利用JDBC来连绵数据库,于是只消JDBC接济的数据库MyBatis都接济)。

  5、供应照射标签,接济对象与数据库的ORM字段合连照射;供应对象合连照射标签,接济对象合连组件庇护。

  1、SQL语句的编写劳动量较大,加倍当字段多、干系表多时,对拓荒职员编写SQL语句的功底有必定请求。

  2、对本能的请求很高,或者需求改变较多的项目,如互联网项目,MyBatis将是不错的选取。

  2、Mybatis直接编写原生态sql,可能厉厉管造sql实行本能,灵巧度高,相当适合对合连数据模子请求不高的软件拓荒,由于这类软件需求改变频仍,一但需求改变请求疾速输出结果。不过灵巧的条件是mybatis无法做到数据库无合性,倘使必要告竣接济多种数据库的软件,则必要自界说多套sql照射文献,劳动量大。

  3、Hibernate对象/合连照射技能强,数据库无合性好,关于合连模子请求高的软件,倘使用hibernate拓荒可能节俭许多代码,升突出力。

  第1种:通过正在盘查的sql语句中界说字段名的又名,让字段名的又名和实体类的属性名同等。

  第2种:通过 resultMap来照射字段名和实体类属性名的逐一对应的合连。

  !–用result属性来照射非主键字段,property为实体类属性名,column为数据表中的属性–

  Dao接口即Mapper接口。接口的全限名,便是照射文献中的namespace的值;接口的本事名,便是照射文献中Mapper的Statement的id值;接口本事内的参数,便是传达给sql的参数。

  Mapper接口里的本事,是不行重载的,由于是利用 全限名+本事名 的存储和寻找政策。Mapper 接口的劳动道理是JDK动态署理,Mybatis运转时会利用JDK动态署理为Mapper接口天生署理对象proxy,署理对象会拦截接口本事,转而实行MapperStatement所代表的sql,然后将sql实行结果返回。

  Mybatis利用RowBounds对象举办分页,它是针对ResultSet结果集实行的内存分页,而非物理分页。可能正在sql内直接书写带有物理分页的参数来完工物理分页功用,也可能利用分页插件来完工物理分页。

  分页插件的根基道理是利用Mybatis供应的插件接口,告竣自界说插件,正在插件的拦截本事内拦截待实行的sql,然后重写sql,按照dialect方言,增加对应的物理分页语句和物理分页参数。

  第一种是利用 resultMap标签,一必界说数据库列名和对象属性名之间的照射合连。

  有了列名与属性名的照射合连后,Mybatis通过反射创修对象,同时利用反射给对象的属性一一赋值并返回,那些找不到照射合连的属性,是无法完工赋值的。

  倘使采用自伸长政策,自愿天生的键值正在 insert 本事实行完后可能被修树到传入的参数对象中。

  //对应的xml,#{0}代表吸取的是dao层中的第一个参。

 

版权所有: aoa电子体育竞技|aoa官方体育平台 

京ICP备05050114号      400-160-1670