(相关面试题! 供参考!)

1.ORM框架有哪些?

MyBatis:半自动化框架(不是纯ORM) 需要写动态SQL语句,实体类和SQL语句之间建立映射关系

Spring:轻量级框架, Java EE的春天,当前主流框架(低耦合 高内聚)

解释ORM : (Object Relational Mapping):表示对象 关系 映射:

    • 编写程序的时候,以面向对象的方式处理数据
    • 保存数据的时候,以关系型数据库的方式存储

2.  MyBatis和Spring的优点 分别是什么?

MyBatis:SQL语句封装在配置文件中,便于统一管理和维护,降低程序的耦合度

了解底层封装过程

方便程序代码调试

Spring: 低侵入式设计

独立于各种应用服务器

依赖注入特性将组件关系透明化,降低了耦合度

面向切面编程特性允许将通用任务进行集中式处理

与第三方框架的良好整合 粘合剂

! !!  Spring也是轻量级框架,站式框架, 可以提供对持久层的支持, 提供Web MVC框架

3.   MyBatis的核心对象有哪些?

SqlSessionFactoryBuilder:

              (1.)用过即丢,其生命周期只存在于方法体内
              (2.)可重用其来创建多个 SqlSessionFactory 实例
              (3.)负责构建SqlSessionFactory,并提供多个build方法的重载---
 
         SqlSessionFactory
              (1.)SqlSessionFactory是每个MyBatis应用的核心
              (2.)作用:创建SqlSession实例
              (3.)作用域:Application 全局作用域
              (4.)生命周期与应用的生命周期相同
 
           SqlSession
             (1.)包含了执行SQL所需的所有方法
             (2.)对应一次数据库会话,会话结束必须关闭
             (3.)线程级别,不能共享
             (4.)一个request请求相同
 
4.如何搭建Mybatis?

1.导入jar包

2.核心配置文件:configuration.xml

3.创建实体类

4.dao层+SQL映射文件-mapper.xml

5.创建测试类:

读取核心文件:mybatis-config.xml

创建SqlSessionFactory对象。读取配置文件

创建SqlSession对象

调用mapper文件进行数据操作

 
5.MyBatis框架和JDBC相比的优点:
      优点
              与JDBC相比,减少百分之50的代码量
              最简单的持久化框架,小巧并简单易学
              SQL代码从程序代码中彻底分离,可重用
              提供XML标签 支持编写动态SQL
              提供映射标签,支持对象与数据库的ORM字段映射
       缺点
             SQL语句编写工作量大,对其人员有一定要求
              数据库移植性差.
 
6.resultType和resultMap的区别是什么?
    • resultType是直接表示返回类型 ,基本数据和复杂数据类型
    • resultmap是对外部resultMap的引用 ,数据库字段信息和实体类对象属性不一致,复杂的联合查询,自由控制映射结果
    注意!! 二者不能同时存在,本质上都是Map数据结构
 
7.IOC AOP?谈谈你对它们的理解、
      IOC(Inversion of Control):是一种设计思想 —组件化思想,英文翻译过来就是控制反转—将控制权(创建对象和对象之间的依赖关系的权利)交给spring容器。
    • 控制反转(Inversion of Control)名词,指代内部转外部,将组件对象的控制权从代码本身转移到外部容器
    • 依赖注入(Dependency Injection):操作,在内部拿数据,将组件的构建和使用分开
    • 组件化思想:分离关注点,使用接口,不再关注实现

       补充!!!

    •  轻量级IOC容器:Pico Container、Avalon、Spring、HiveMind等。
    •  超重量级IOC容器:EJB。
    •  半轻半重IOC容器:JBoss,Jdon等。
       AOP (Aspect Oriented Programming):
             所谓面向切面编程,是一种通过预编译和运行期动态代理的方式实现在不修改源代码的情况下给程序动态添加功能的技术
面向切面.
              简单来说就是拿回来拼回去的操作;将程序逻辑相对独立的功能抽取出来(去掉也不影响),利用spring的配置文件将这些功能插进去,提高了代码的复用性.
 
8.为什么要使用IOC AOP 有什么优点?
    • IOC:解 耦 合—实现组件之间的解耦,实现每个组件时只关注组件内部的事情 ,提高程序的灵活性和可维护性
    • AOP:专心做事,作用主要是改变了OOP(Object Oriented Programming)面向对象编程的不足。
 
9. MyBatis,增删改查个使用什么标签,有什么属性?

    • 查<select id= “接口中的方法名” resultType="返回值类型/完全限定名" parameterType="传入SQL语句的参数类型/完全限定名"></select>
    • 删<delect id= “接口中的方法名” parameterType=“传入SQL语句的参数类型/完全限定名” ></delect>
    • 改<update  id= “接口中的方法名” parameterType="传入SQL语句的参数类型/完全限定名 “></update>
    • 增<insert  id= “接口中的方法名” parameterType=“传入SQL语句的参数类型/完全限定名 ”></insert>

!!属性:resultType,parameterType

!!传入SQL语句的参数类型可以是:

基础数据类型:int,String,Date 只能传一个,通过 #{参数名} 获取
复杂数据类型:Java实体类,Map等 可通过 属性名或 #{Map的keyName}获取
10. Ajax的属性:
    • url   “发送请求地址”
    • type   “请求方式”
    • data   “发送服务器的数据”
    • dataType    “预期服务器返回的数据类型”
    • success   “成功调用的”
    • error    “请求失败调用的”
      
 
 
 
 
 
 
 
 
 

spring MyBatis的相关面试题的更多相关文章

  1. struts2 spring mybatis 整合(test)

    这几天搭了个spring+struts2+mybatis的架子,练练手,顺便熟悉熟悉struts2. 环境:myEclipse10+tomcat7+jdk1.6(1.8的jre报错,所以换成了1.6) ...

  2. 手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)

    手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版) SSM(Spring+SpringMVC+Mybatis),目前较为主流的企业级架构方案.标准的MVC设计模式, ...

  3. spring,mybatis事务管理配置与@Transactional注解使用[转]

    spring,mybatis事务管理配置与@Transactional注解使用[转] spring,mybatis事务管理配置与@Transactional注解使用 概述事务管理对于企业应用来说是至关 ...

  4. Spring学习笔记--spring+mybatis集成

    前言: 技术的发展, 真的是日新月异. 作为javaer, 都不约而同地抛弃裸写jdbc代码, 而用各种持久化框架. 从hibernate, Spring的JDBCTemplate, 到ibatis, ...

  5. spring+mybatis管理多个数据源(非分布式事务)

    本文通过一个demo,介绍如何使用spring+mybatis管理多个数据源,注意,本文的事务管理并非之前博文介绍的分布式事务. 这个demo将使用两个事务管理器分别管理两个数据源.对于每一个独立的事 ...

  6. 使用spring+mybatis+atomikos+tomcat构建分布式事务

    本文通过一个demo,介绍如何使用spring+mybatis+atomikos+tomcat构建在一个事务中涉及两个数据源的web应用. demo功能:实现一个能成功提交和回滚的涉及两个数据库数据源 ...

  7. Spring+MyBatis实践—MyBatis数据库访问

    关于spring整合mybatis的工程配置,已经在Spring+MyBatis实践—工程配置中全部详细列出.在此,记录一下几种通过MyBatis访问数据库的方式. 通过sqlSessionTempl ...

  8. Spring+MyBatis实践—工程配置

    初次实践:Spring+MyBatis技术搭建框架,采用Bootstrap前端开源框架. 简介: MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所 ...

  9. Maven 搭建SpringMvc+Spring+Mybatis详细记录

    总觉得,看比人写的总是那么好,每次搭建框架时都会找博客,找教程来跟着一步一步走,虽然很快搭建成功了,但是经常情况是我并不知道我干了什么,也不记得具体步骤,到底为什么要这么做,今天我详细记录了一下自己搭 ...

随机推荐

  1. Unlink学习总结

    Unlink 本文参考了CTF-wiki 和glibc 源码 原理: 我们在利用 unlink 所造成的漏洞时,其实就是借助 unlink 操作来达成修改指针的效果. 我们先来简单回顾一下 unlin ...

  2. Hadoop完整搭建过程(二):伪分布模式

    1 伪分布模式 伪分布模式是运行在单个节点以及多个Java进程上的模式.相比起本地模式,需要进行更多配置文件的设置以及ssh.YARN相关设置. 2 Hadoop配置文件 修改Hadoop安装目录下的 ...

  3. 数据结构之List | 让我们一块来学习数据结构

    列表[List]的定义 列表是一组有序的数据.每个列表中的数据项称为元素.在 JavaScript 中,列表中的元素 可以是任意数据类型.列表中可以保存多少元素并没有事先限定,实际使用时元素的数量 受 ...

  4. java面试一日一题:讲下redo log

    问题:请讲下redo log的作用 分析:mysql中有很多日志,例,binlog undo log redo log,要弄清楚这些日志的作用,就要了解这些日志出现的背景及要解决的问题? 回答要点: ...

  5. Bootstrap工具包--用于响应式布局和移动设备优先的web项目

    Bootstrap是用于前端开发的工具包,是一个css/html框架 用于响应式布局和移动设备优先的web项目 响应式布局--一个网站能兼容多个终端 有很多版本:v3,v4,v5   三个没啥区别  ...

  6. 【Redis连接超时】记录线上RedisConnectionFailureException异常排查过程

    项目架构: 部分组件如下: SpringCloudAlibaba(Nacos+Gateway+OpenFeign)+SpringBoot2.x+Redis 问题背景: 最近由于用户量增大,在高峰时期, ...

  7. POJ 2976 01分数规划基础题目

    题意:       给你一组"数",一共n个,每个数有两个权值,价钱a[i],代价b[i],让你选择n - k使得 sigma(a[i]) / sigma(b[i]) * 100 ...

  8. hdu2235 机器人的容器

    题意: 机器人的容器 Time Limit: 3000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  9. Python中的输入(input)和输出打印

    目录 最简单的打印 打印数字 打印字符 字符串的格式化输出 python中让输出不换行 以下的都是在Python3.X环境下的 使用 input 函数接收用户的输入,返回的是 str 字符串 最简单的 ...

  10. MS08_067漏洞攻击

    MS08_067 MS08_067是典型的缓冲区溢出漏洞,Windows的Server服务在处理特制RPC请求时存在缓冲区溢出漏洞,远程攻击者可以通过发送恶意的RPC请求触发这个溢出,导致完全入侵用户 ...