zoukankan      html  css  js  c++  java
  • 小组级软件开发理论与技术 && 管理系统设计理论与技术 (框架技术)

    小组级软件开发理论与技术 && 管理系统设计理论与技术 (框架技术)

    1、关于MyBatis的优点,说法错误的是(   )

    A、 简单且功能强大 

    B、 开发人员能够完全控制所执行的SQL语句 

    C、 容易维护和修改 

    D、 自动化的ORM框架,便于面向对象开发 

    答案: D
    解析:

    2、MyBatis中,对于Insert映射语句有一个useGeneratedKeys属性,该属性的默认值为(  

    A、 true

    B、 false 

    C、 1

    D、 0

    答案: B

    3、使用MyBatis时,有如下代码:

    <select id="findActiveBlogWithTitleLike" parameterType="Blog" resultType="Blog">

    SELECT * FROM BLOG WHERE state = 'ACTIVE'

    ___________ AND title like 'MyBatis'

    </if>

    </select>

    这段配置文件需要判断title”字段是否为空,则可以填写在横线处的代码是

     

    A、 <if test="title" != null> 

    B、 <if test="title != null"> 

    C、  <if title != null> 

    D、 <if title ="test != null"> 

    答案: B

    4、下面关于AOP概念说法错误的是()

    A、 AOP是面向切面编程的意思,其主要作用就是对代码段进行增强处理。其设计思想来源于抽象工厂模式。 

    B、 增强处理是在不改变原程序的基础上为代码段增加新的功能,如增加曰志输出功能、启动数据库事务等。 

    C、 AOP能分离增强处理的代码和实现业务的代码,并能根据需求动态配罝增强处理,有利于系统的解耦合。 

    D、 Spring的AOP实现是通过集成AspectJ框架来实现的。 

    答案: A

    5、关于SpringAOP “返回后通知”和“后通知”说法正确的是()

    A、 无论方法是如何结束的都会触发“返回后通知” 

    B、 无论方法是如何结束的都会触发“后通知” 

    C、 如果方法没有返回值“返回后通知”不会触发 

    D、 如果方法没有返回值“后通知”不会触发 

    答案: B
    解析:

    6、下列有关MyBatis的说法中错误的是(  )

    A、 MyBatis是一个SQL映射框架,与JDBC相比减少很多代码量 

    B、 MyBatis将SQL语句从程序中剥离出来放到配罝文件中,易于维护和修改 

    C、 由于要写SQL语句,MyBatis的数据库移植性不够好 

    D、 MyBatis对于性能要求较高的系统不太适用 

    答案: D

    7、Spring中,关于控制反转的理解正确的是( 

    A、 控制反转也称为依赖注入 

    B、 控制反转是面向切面的一种设计理念 

    C、 使用控制反转增加了代码量 

    D、 控制反转不是面向对象的设计理念 

    答案: A

    8、MyBatis中,框架执行的总体流程是(  )

    A、 加载配置,SQL解析,SQL执行,结果映射 

    B、 加载配置,SQL执行,SQL解祈,结果映射 

    C、 加载配置,SQL编译,SQL美化,结果映射 

    D、 加载配置,SQL美化,SQL编译,结果映射 

    答案: A

    9、下列关于SpringMVC处理文件上传的说法错误的是。(  )

    A、 SpringMVC默认情况下不能处理文件上传,必须在上下文中配置MultipartResolver 

    B、 使用 CommonsMultipartResolve配置一个MultipartResolver解折器,可以设置上传文件的大小限制,上传文件的临时路径,以及请求的编码格式等 

    C、 SpringMVC会将上传文件自动绑定到MultipartFile对象中,在处理请求的方法中,MultipartFile可以直接作为入参得到 

    D、 SpringMVC在做文件上传的form表单中,不需要再设置 enctype="multipart/form-data" 

    答案: D

    10、下列关于MyBatis的Mappers元素说法错误的是。(  )

    A、 通过Mappers元素告诉在哪里能够找到我们定义的映射SQL 语句 

    B、 MyBatis全局配置文件里,Mappers元素必须写在最后 

    C、 这种写法是正确的:<mapper resource="cn.example.dao.UserMapper.xml"/> 

    D、 Mappers元素节点内有多个Mapper元素,可以使用类资源路径或者URL两种方式将mapper文件加入到全局配置文件中 

    答案: C
    解析:

    11、Spring中配置Bean时,作用域范围默认采用prototype  )

    答案: 错误

    12、SpringAOP支持前置通知、后置通知、环绕通知。  )

    答案: 正确

    13、MyBatis的配置文件中, dataSource 用来指定MyBatis的数据源。(  )

    答案: 正确

    14、MyBatis框架提供映射标签,支持对象与数据库的ORM字段关系映射,但是不支持编写动态SQL语句。  )

    答案: 错误

    15、MyBatis主要思想是将程序中的大量SQL语句剥离出来,配置在配置文件中,实现SQL的灵活配置。(  )

    答案: 正确

    16、MyBatis和Spring集成后,可以使用Spring的事务管理。  )

    答案: 正确

    17、SpringMVC中 <mvc:resources/>访问静态文件,可以设置多个静态文件,但必须放置在同一个目录下。  )

    答案: 错误

    18、Spring的依赖注入,将组件间的依赖关系采取配置文件的方式管理,而不是硬编码在代码中。  )

    答案: 正确

    19、SpringMVC中,@RequestParam表示是从路径中去获取变量,也就是把路径当做变量。  )

    答案: 错误

    20、SpringMVC使用                 注解为控制器指定可以处理哪些URL请求。

     

    答案:

    @RequestMapping

     


    解析:

    21、Spring的核心是                                            。

     

    答案:

    IOC;控制反转

    AOP;面向切面编程


    解析:

    22、Spring提供了几种灵活的机制去描述和装配Bean,主要有在Java中进行显式配置、                    、在XML中进行显式配置。

     

    答案:

    注解配置


    解析:

    23、SpringAOP使用了两种代理机制,一种是基于JDK的动态代理,另一种是                 。

     

    答案:

    CGLib代理


    解析:

    24、MyBatis是一个              框架,其框架功能构架分为三层,API接口层、               、基础支撑层。

     

    答案:

    数据持久层;ORM

     

     

    数据处理层


    解析:

    25、MyBatis提供二级缓存,其存储作用域为                

     

    答案:

    Mapper;Namespace

     


    解析:

    26、MyBatis中的动态SQL主要解决查询条件不确定的情况,在程序运行期间,根据提交的查询条件进行查询。

     

    答案: 正确
    解析:

    27、mapper代理方式开发程序员只需编写mapper接口和mapper.xml映射文件,MyBatis可以自动生成mapper接口实现类代理对象。

     

    答案: 正确
    解析:

    28、MyBatis默认开启延迟加载。

     

    答案: 错误
    解析:

    29、SpringMVC中接收页面提交的数据是通过方法形参来接收的。

     

    答案: 正确
    解析:

    30、SpringMVC中如果使用@RequestParam,不用限制request传入的参数名称和controller方法的形参名称一致。

     

    答案: 正确
    解析:

    31、@Controller该注解表明该类扮演控制器的角色,Spring不需要你继承任何其他控制器基类或者引用Servlet API。

     

    答案: 正确
    解析:

    32、DI依赖注入,即让调用类对某一接口实现类的依赖关系由第三方注入,以移除调用类对某一接口实现类的依赖。

     

    答案: 正确
    解析:

    33、spring控制事务是以mapper的方式为单位的,如果一个方法执行抛出异常,全部回滚。

     

    答案: 错误
    解析:

    34、SpringMVC参数绑定支持集合类型绑定,有数组、List以及(    )。

     

     

    A、 Map 

    B、 Set

    C、 POJO 

    D、 Model

    答案: A
    解析:

    35、Spring以Bean的方式管理所有的组件,此处的Bean指的是(    )。

    A、 必须符合JavaBean

    B、 任何Java对象以及Java组件都视为Bean

    C、 必须有getter方法和setter方法

    D、 EJB组件

    答案: B
    解析:

    36、以下哪个不是Spring的依赖注入方式。(    )

     

    A、 setter注入

    B、 getter注入

    C、 构造函数注入

    D、 接口注入

    答案: B

    37、Spring Initializr 是创建 Spring Boot Projects 的唯一方法。

     

    答案: 错误

    38、以下不属于@SpringBootApplication“三体”结构的注解是()。

    A、 @Configuration

    B、 @EnableAutoConfiguration

    C、 @ComponentScan

    D、 @Resource

    答案: D

    39、SpringBoot项目的全局配置文件只有一种文件格式。

    答案: 错误

    40、SpringBoot中,下列关于Web服务器端口配置,正确的是()。

    A、 server.port=8080

    B、 port=8080

    C、 servlet.port=8080

    D、 web.port=8080

    答案: A

    41User.java中代码片段如下:

    public class User {

        private Integer id;

     

        private String username;

     

        private String password;

        

        ...

    }

     

    UserController.java中代码片段如下:

     

    @RequestMapping("/userList")

    public List<User> getUsers(){

        return userService.getUsers();

    }

    请写出向此URI进行异步请求并进行结果处理的代码。

    答案:

    $.ajax({                                      

      url:         

      type:'post',      

      success:function(data){                   

        

        for(var i=0;i<data.length;i++){       

         

         alert(data[i].id+data[i].username+data[i].password);

        }

      }

    });

     


    解析:

    42、Mybatis是一个数据持久层框架,其框架功能架构分为三层,数据处理层、_____________、基础支撑层。

    答案:

    API接口层


    解析:

    43、Spring 通过一种称作_____________的技术促进了低耦合。

    答案:

    控制反转

    44、SpringMVC是一个基于MVC的web框架,SpringMVC分离了控制器、模型对象、_____________以及处理程序对象的角色,这种分离让他们更容易进行定制。

    答案:

    过滤器

    45、SpringBoot的优势就是______________________,这样的理念让你的项目快速运行起来。

    答案:

    习惯优于配置

    46、____________________________是SpringBoot项目的核心注解,其主要目的是开启自动配置。

    答案:

    @SpringBootApplication

    47、Mybatis 有两种事务管理类型,JDBC、__________________。

    答案:

    MANAGED

    48、在Spring中,使用Java代码进行配置Bean,我们需要___________________注解标明这是一个配置类。

    答案:

    @Configuration

    49、创建一个SpringMVC项目时,在______________文件中配置DispatcherServlet。

    答案:

    web.xml

    50、启动SpringBoot项目,需要在启动类中的main方法中执行_____________________类中的run方法。

    答案:

    SpringApplication

    51、在Mybatis中,关于缓存说法错误的是。(        )

    A、 Mybatis的缓存分一级缓存和二级缓存

    B、 二级缓存可以被所有的SqlSession共享

    C、 全局的二级缓存开关在Mybatis配置文件的settings标签中配置,默认为false

    D、 在映射文件中默认是没有开启二级缓存的,开启二级缓存需要使用cache标签

    答案: C

    52、关于SqlSessionFactory说法错误的是。(      )

    A、 每个Mybatis的应用程序都以一个SqlSessionFactory对象的实例为核心

    B、 SqlSessionFactoryBuilder负责构建SqlSessionFactory,并且提供了多个build()方法的重载

    C、 SqlSessionFactoryBuilder对象只能在XML配置文件中构建SqlSessionFactory

    D、 有了SqlSessionFactory对象之后,就可以进而获取SqlSession实例,SqlSession对象中完全包含以数据库为背景的所有执行SQL操作的方法

    答案: C

    53、下面关于BeanFactory和ApplicationContext说法正确的是。(      )

    A、 是BeanFactory的实现类

    B、 是一个接口

    C、 提供一些BeanFactory的扩展功能

    D、 和BeanFactory功能相同

    答案: B

    54、在下列选项中,哪个是Spring中的依赖注入方式。(      )

    A、 构造函数注入

    B、 属性注入

    C、 接口注入

    D、 以上都是

    答案: D

    55、下列哪项不是SpringBoot返回json数据格式。(      )

    A、 返回pojo对象

    B、 返回集合对象

    C、 返回boolean类型

    D、 返回Map对象

    答案: C

    56、下列关于SpringMVC说法不正确的是。(      )

    A、 映射器、适配器、视图解析器可以不声明,Spring自动分配

    B、 如果不配置映射器,默认使用的映射器是BeanNameUrlHandlerMapping

    C、 如果不配置适配器,默认使用的适配器是SimpleControllerHandlerAdapter

    D、 在配置文件中,多个适配器不可以并存

    答案: D

    57、关于SpringMVC注解开发中,下列说法错误的是。(      )

    A、 使用mvc:annotation-driven,就可以不用配置RequestMappingHandlerMapping和RequestMappingHandlerAdapter

    B、 使用注解@Controller修饰处理器

    C、 在Spring容器中加载Handler,对于注解的Handler建议使用组件扫描代码为<context:annotation-config  />

    D、 使用注解@RequestMapping修饰处理器的方法,参数使用请求URL,映射请求

    答案: C

    58、在SpringBoot中下列关于注解说法正确的是。(      )

    A、 通过@PropertySource可以指定读取的配置文件,通过注解@Value获取值

    B、 注解@Bean作用于类上,相当于xml配置中的<bean>

    C、 注解@ComponentScan配置扫描包,其中basePackages指定扫描的基准包,其中只包含基本包

    D、 使用注解@ImportResource加载其他配置类

    答案: A

    59、下列选项中哪个不是SpringMVC中Controller中方法的返回值。(     )

    A、 String

    B、 Integer

    C、 ModelAndView

    D、 void

    答案: B

    60、关于SpringMVC数据校验,校验注解下列说法错误的是。(      )

    A、 @Null限制只能为null

    B、 @Pattern(value)限制必须符合执行的正则表达式

    C、 @NotEmpty验证注解的元素值不为空,但可以为null

    D、 @Min(value)限制必须为一个不小于指定值得数字

    答案: C

    61、Spring支持五种作用域分别是:singleton、prototype、request、session、global Session。

    答案: 正确
    解析:

    62、Spring通过@Autowired注解实现Bean的依赖注入,@Resource也可以实现依赖注入

    答案: 正确

    63、SpringMVC中可以使用@ModelAttribute注解实现数据回显。

    答案: 正确

    64、SpringMVC中如果使用@RequestParam,必须限制request传入的参数名称和controller方法的形参名称一致。

    答案: 错误

    65、Mybatis的动态SQL是基于OGNL表达式的。

    答案: 正确

    66、Mybatis用于实现动态SQL的元素有foreach等标签,foreach标签中的属性item表示在迭代过程中,每次迭代到的位置。

    答案: 错误

    67、在使用Spring框架配置AOP的时候,切入点表达式定义为execution(public * *(..)),表示匹配所有目标类的public方法。

    答案: 正确

    68、Spring控制事务是以bean组件的方法为单位的,如果一个方法正常执行完毕,该方法内的全部数据库操作按照一次事物提交,如果某句代码抛出异常,将会滚到这句代码之前。

    答案: 错误

    69、在SpringBoot中,可以在application.properties配置文件中配置视图解析器,若是使用@RestController注解,配置的视图解析器将不起作用。

    答案: 正确

    70、在SpringBoot中自定义一个拦截器,需要自定义一个配置类,实现WebMvcConfigurer接口,然后重写addViewControllers()方法。

    答案: 错误

    71、Spring的声明式事务管理可以通过两种方式实现,一种是基于XML的方式,另一种是基于______________的方式。

    答案:

    注解


    解析:

    72、依赖注入又称为______________,让Bean之间以配置文件的形式组织在一起。

    答案:

    控制反转


    解析:

    73、当数据表中的列和需要返回的属性不完全一致,MyBatis需要使用______________元素进行处理。

    答案:

    resultMap ; resultmap


    解析:

    74、SpringMVC中,使用 ______________注解来表示自动绑定。

    答案:

    @Autowired ; autowired ; Autowired


    解析:

    75、使用<set>和<if>元素相结合的方式来组装update语句时,<set>元素就会动态前置__________关键字,同时也会消除SQL语句中最后一个多余的逗号

    答案:

    set ; SET ; Set


    解析:

    76、对于数据源的配置,MyBatis框架提供了unpooled、pooled、______________三种数据源类型。

    答案:

    JNDI ; jndi


    解析:

    77、Spring中进行自动装配,只有通过设置<bean>元素的autowire属性才能实现自动装配。(  )

    答案: 错误

    78、Spring框架中Bean的生命周期不包括()

    A、 prototype

    B、 application

    C、 request

    D、 session

    答案: B

    79、下列关于Spring依赖检查说法不正确的是()

    A、 Spring容器可以检查Bean之间的依赖关系是否有效

    B、 可以通过Bean的dependency-check属性来设置依赖关系检查

    C、 可以通过Beans的default-dependency-check属性来设置全局依赖关系检查

    D、 Spring默认检查每个依赖Bean的属性是否真的有值

    答案: D

    80、关于Spring配置DataSource的属性的说法正确的是()

    A、 Spring数据源设置方式比较单一、可配性低

    B、 Spring使用PropertyPlaceholderConfigurer引入属性文件中的配置

    C、 在配置文件中可以使用${...}形式的引用属性值

    D、 在配置文件中可以使用#{...}形式的引用属性值

    答案: C

    81、下列关于Spring的事务的说法中错误的是()

    A、 Spring支持声明式事务

    B、 使用Spring的声明式事务时,需要制定一个事务管理器

    C、 <aop:pointcut id="bizMethod" expression="execution(* com.example.biz.*.*(..))"/> 表示com.example.biz包下所有类的所有方法都应用事务规则

    D、 <tx:method name="update*"  propagation="REQUIRED"/>表示当前方法必须运行在自己独立的事务中。

    答案: D

    82、下面选项中关于MyBatis的全局配置文件中mappers元素的作用描述正确的是()

    A、 加载映射文件

    B、 类型转换器

    C、 别名处理

    D、 数据源引用

    答案: A

    83、在MyBatis中通过__________________标签来进行数据源管理,主要是为了简化在多套数据源配置之间的切换,比如开发和发布使用不同的配置。

    答案:

    environments

    84、在MyBatis中,使用<cache/>标签来设置缓存,其中________属性表示对象是否是只读的。

    答案:

    readOnly

    85、MyBatis的核心配置文件的根元素是________________________

    答案:

    configuration


    解析:

    86、MyBatis使用SqlSessionFactory类的openSession方法来创建一个_______类型的实例对象。

    答案:

    SqlSession

    87、在MyBatis中,一个SqlSessionFactory实例通过__________类获得

    答案:

    SqlSessionFactoryBuilder


    解析:

    88、SpringBoot框架中默认的内置web服务器是___________

    答案:

    Tomcat

    89、在SpringBoot框架的Controller类里面的所有方法都以JSON格式输出,需要在Controller类上添加__________注解

    答案:

    RestController

    90、在SpringBoot框架中,在一个类上添加__________注解,使其相当于一个XML配置文件作用。

    答案:

    Configuration

    91、SpringBoot的全局配置文件一般放置在___________文件夹下

    答案:

    resources

    92、MyBatis能够配置多套运行环境,但是每个SqlSessionFactory实例只能选择一个运行环境

    答案: 正确

    93、MyBatis通过environments元素的default属性来指定默认的运行环境ID,这个运行环境ID可以是之前没有定义的运行环境ID

    答案: 错误

    94、MyBatis的系统核心配置文件configuration.xml,主要包含数据源和事务管理器等设置的属性信息。

    答案: 正确

    95、MyBatis在mapper配置文件中,通过flushCache来指定执行语句后是否会清空缓存,增删改操作时默认为true

    答案: 正确

    96、MyBatis中如果需要让容器(如Spring)来管理事务,应将事务管理器类型设置为 CONTAINER

    答案: 错误

    97、关于Spring框架特征的描述,以下不正确的是()。

    A、 轻量

    B、 面向切面

    C、 控制反转

    D、 依赖于应用服务器

    答案: D

    98、Spring提供了几种灵活的机制去描述和装配Bean,以下不正确的是()。  

    A、 在Java中进行显示配置

    B、 在XML中进行显示配置

    C、 自动装配

    D、 使用注解进行自动装配

    答案: C

    99、使用Java配置类装配Bean,需要使用两个注解来实现,分别是 @Configuration和                               

    答案:

    @Bean

    100、Spring支持两种类型的事务管理,一种是编程式事务管理,另一种是                                               

    答案:

    声明式事务管理声明式

    101、关于BeanFactory接口与ApplicationContext接口的关系,描述正确的是()。

    A、

    BeanFactory接口是ApplicationContext接口的父接口。

     

    B、 BeanFactory接口是ApplicationContext接口的子接口。

    C、 BeanFactory接口面向使用Spring框架的开发者。

    D、 ApplicationContext接口面向Spring框架本身。

    答案: A

    102、MVC框架是为了解决传统__________模式。

    答案:

    MVC


    解析:

    103、用户发送请求至springmvc前端控制器__________。

    答案:

    DispatcherServlet


    解析:

    104、springmvc默认的视图解析器是__________。

    答案:

    ViewReslover


    解析:

    105、Spring中的控制翻转说的是_________。

    答案:

    IOC


    解析:

    106、Spring中的面向切面编程说的是__________。

    答案:

    AOP


    解析:

    107、__________注解用于处理请求url映射的注解,用于方法或者用于类上。

    答案:

    @RequestMapping


    解析:

    108、__________注解实现将conreoller方法返回对象转化为json对象响应给客户。

     

    答案:

    @ResponseBody

     


    解析:

    109、__________注解实现接收http请求的json数据,将json转换为java对象。

    答案:

    @RequestBody

     


    解析:

    110、SpringMvc是一种轻量级的、基于MVC的________层应用框架。

    答案:

     

    web

     


    解析:

    111、Mybatis的Mapper文件中获取参数的两种方式分别是${}和_________。

    答案:

    #{}


    解析:

    112、SpringMvc请求方法的返回值可以是void和String和__________。

    答案:

    ModelAndView


    解析:

    113、Mybatis是一个半__________(对象关系映射)框架。

    答案:

    ORM


    解析:

    114、在mapper中传递多个参数可以使用_________注解。

    答案:

    @param


    解析:

    115、mybtis中xml一对一查询的标签是__________。

    答案:

    association


    解析:

    116、mybtis中xml一对多查询的标签是__________。

    答案:

    collection


    解析:

    117、Spring DAO 中最常用的类是()。

    A、 JdbcTemplate ,SimpleJdbcTemplate

    B、 SimpleJdbcInsert,SimpleJdbcProcedure

    C、 SimpleJdbcInsert ,SimpleJdbcStoredProc

    D、 SimpleJdbcQuery ,SimpleJdbcExec

    答案: A
    解析:

    118、Spring AOP 中, 织入(Weaving) 可以在下面什么时间完成()。

    A、 全部选项

    B、 Run time

    C、 Load time

    D、 Compile time

    答案: A
    解析:

    119、下面关于Spring MVC 描述正确的是()。

     

    A、 DispatcherServlet在 Spring MVC 中是核心servlet , 它负责接收请求并将请求分发给适合的控制器

    B、 在Spring MVC 中,可以配置多个DispatcherServlet

    C、 全部选项

    D、 要使Spring MVC可用,DispatcherServlet需要在web.xml中配置

    答案: C
    解析:

    120、下面哪项是Spring自动装载模式()。

    A、 autodetect

    B、 全部选项

    C、 constructor

    D、 byname, byType

    答案: B
    解析:

    121、关于"@Order"注解,最正确的描述是()。

    A、 实现org.springframework.core.Ordered接口

    B、 指定一个bean的范围

    C、 通常用于注入域对象的属性

    D、 全不正确

    答案: A
    解析:

    122、如何在Spring应用中使用SLF4J()。

    A、 作为日志框架

    B、 全不正确

    C、 作为一个bean

    D、 作为JDBC框架

    答案: A
    解析:

    123、Spring bean 的默认作用范围是()。

    A、 全不正确

    B、 Singleton

    C、 Prototype

    D、 Session

    答案: B
    解析:

    124、下列关于Spring特性中IoC描述错误的是()。

    A、 IoC就是指程序之间的关系由程序代码直接操控

    B、 所谓“控制反转”是指控制权由应用代码转到外部容器,即控制权的转移

    C、 IoC将控制创建的职责搬进了框架中,从应用代码脱离开来

    D、 使用Spring的IoC容器时只需指出组件需要的对象,在运行时Spring的IoC容器会根据XML配置数据提供给它

    答案: A
    解析:

    125、在Spring MVC中,哪个类是负责处理HTTP请求和响应的()。

    A、 DispatcherServlet

    B、 RequestHandler

    C、 HttpServlet

    D、 SpringController

    答案: A
    解析:

    126、Spring支持的事务功能包括()。

    A、 事务的传播行为

    B、 事务回滚

    C、 全部选项

    D、 事务的隔离级别

    答案: C
    解析:

    127、使用Spring MVC 处理普通页面请求, 下面哪个排序是正确的()。

            1.请求:请求提交给服务器

            2.分发:分发器通过web 应用配置信息 , 将请求分发至适当的控制器

            3.服务调用:控制器与业务层交互

            4.响应:控制器更新模型,将执行结果返回给客户端展现

     

    A、 1-2-3-4

    B、 1-4-3-2

    C、 1-4-2-3

    D、 1-3-2-4

    答案: A
    解析:

    128、以下哪个不是 Spring AOP 的注解()。

    A、 @Before

    B、 @Around

    C、 @BeforeReturning

    D、 @AfterThrowing

    答案: C
    解析:

    129、@RequestMapping是Spring中的哪一部分()。

    A、 DAO

    B、 Security

    C、 Web MVC

    D、 Web

    答案: C
    解析:

    130、下面哪个是Spring最核心的servlet()。

    A、 WebServlet

    B、 SpringServlet

    C、 DispatcherServlet

    D、 IoCServlet

    答案: C
    解析:

    131、使用@Required但不关联bean 来注解setter方法,将会发生()。

    A、 bean被设置为null

    B、 启动异常

    C、 Spring 将创建bean

    D、 什么也不发生

    答案: B
    解析:

    132、使用springmvc必须要有web.xml文件。

    答案: 错误
    解析:

    133、SpringAop指的是面向对象编程。

    答案: 错误
    解析:

    134、mybatis只能使用xxx.xml文件编写sql开发。

    答案: 错误
    解析:

    135、SpringBoot可以快速搭建javaEE级项目。

    答案: 正确
    解析:

    136、Mybatis不支持动态sql。

    答案: 错误
    解析:

    137、DisPatcherServlet是SpringMVC的前端Servlet,和任何的servlet-样,必须在web. xml中 配置后,才能起作用。

    答案: 错误
    解析:

    138、Mybatis中的${}获取参数是有sql注入问题,不能随便使用。

    答案: 正确
    解析:

    139、Spring配置文件的<bean>元素的autowire属性之一byType表示根据属性类型自动装配。

    答案: 正确
    解析:

    140、SpringMVC中必须是实现了Handler接口的JavaBean才能成为请求处理器。

    答案: 错误
    解析:

    141、InternalResourceViewResolve父类是UrlBasedViewResolver。

    答案: 正确
    解析:

    142、在Spring配置文件中,可以通过<bean>元素的autowire属性指定自动装配方式

    答案: 正确
    解析:

    143、使用springMVC进行多文件的效率要比字符流写入方式效率上要快得多。

    答案: 正确
    解析:

    144、spring只能使用xml配置。

    答案: 错误
    解析:

    145、mybatis中sql只能在xml中配置。

    答案: 错误
    解析:

    146、springmvc是优于struts2的。

    答案: 正确
    解析:

    147、Spring的核心容器是其他模块建立的基础,以下哪个不是该容器的组成模块。( )

    A、 Beans模块 

    B、 Core模块 

    C、 Context模块 

    D、 AOP模块 

    答案: D

    148、以下哪些不属于Spring 4.3版本中Bean的作用域。( )

    A、 application 

    B、  request 

    C、 response 

    D、 globalSession 

    答案: C

    149、下列选项中,不属于Spring中实例化Bean的方式的是。( )

    A、  构造器实例化 

    B、 静态工厂方式实例化 

    C、 实例工厂方式实例化 

    D、 抽象方法实例化 

    答案: D

    150、下面关于update()方法描述错误的是。( )

    A、 update()方法可以完成插入、更新、删除和查询数据的操作 

    B、 JdbcTemplate类中,提供了一系列的update()方法 

    C、 update()方法执行后,会返回受影响的行数 

    D、 update()方法返回的参数是int类型 

    答案: A

    151、在MyBatis中,以下不属于元素中使用的属性的是。

    A、 separator 

    B、 collection 

    C、 current 

    D、 item 

    答案: C

    152、MyBatis中,下面属性中不属于元素属性的是。( )

    A、 property 

    B、 column 

    C、 myType 

    D、  javaType 

    答案: C

    153、下面关于Spring MVC特点说法错误的是。( )

    A、 灵活性强,但不易于与其他框架集成 

    B、 可自动绑定用户输入,并能正确的转换数据类型 

    C、 支持国际化 

    D、 使用基于XML的配置文件,在编辑后,不需要重新编译应用程序 

    答案: A

    154、用户通过浏览器向服务器发送请求时,负责拦截用户请求的是。(

    A、 处理器 

    B、  处理器映射器 

    C、 处理器适配器 

    D、 前端控制器 

    答案: D

    155、Spring MVC是Spring提供的一个实现了( )设计模式的轻量级Web框架。

    A、  Web MVC 

    B、 Web 

    C、 单例 

    D、 工厂 

    答案: A

    156、在SpringMVC中,下面关于请求处理方法返回类型说法错误的是。(

    A、 常见的返回类型是ModelAndView、String和void 

    B、 ModelAndView类型中可以添加Model数据,并指定视图 

    C、 String类型的返回值可以跳转视图,但不能携带数据 

    D、 void类型主要在异步请求时使用,它既返回数据,又跳转视图 

    答案: D

    157、在SpringMVC中,下面不属于拦截器类中的方法的是。(

    A、 preHandler() 

    B、 postHandle() 

    C、 afterCompletion() 

    D、 afterpletion() 

    答案: D

    158、SpringMVC中,下面关于文件上传表单说法错误的是。( )

    A、 form表单的method属性设置为post 

    B、 form表单的method属性设置为get 

    C、 form表单的enctype属性设置为multipart/form-data 

    D、 提供的文件上传输入框 

    答案: B

    159、如何在 Spring Boot 中添加通用的 JS 代码?应该把它保存在什么路径下?

    A、 resourcesstaticjsmyapp.js

    B、 resourcesweb-appjsmyapp.js

    C、 resourceswebappjsmyapp.js

    D、 resourcesindexjsmyapp.js

    答案: A

    160、以下关于SpringBoot说法错误的是哪项?

    A、 SpringBoot项目可以生成war文件

    B、 SpringBoot项目可以生成jar文件

    C、 SpringBoot项目可以进行打包

    D、 SpringBoot项目可以生成c文件

    答案: D

    161、SpringBoot项目的总属性文件是()。

    A、 application.txt

    B、 application.properties

    C、 db.properites

    D、 db.txt

    答案: B

    162、在使用Spring框架之后,对象的实例不再由调用者来创建,而是由____________来创建,Spring容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。

    答案:

    Spring容器


    解析:

    163、简单来说,BeanFactory就是一个管理Bean的工厂,它主要负责初始化各种Bean,并调用它们的____________方法。

    答案:

    生命周期


    解析:

    164、Spring的声明式事务管理可以通过两种方式来实现,一种是基于XML的方式,另一种是基于____________的方式。

    答案:

    Annotation;注解


    解析:

    165、MyBatis的删除操作在映射文件中是通过配置____________元素来实现的。

    答案:

    delete


    解析:

    166、MyBatis映射文件中元素是配置文件的根元素,它包含一个____________属性,该属性为这个指定了唯一的命名空间。

    答案:

    namespace


    解析:

    167、____________是当前主流的Java持久层框架之一,它与Hibernate一样,也是一种ORM框架。

    答案:

    MyBatis;mybatis;MYBATIS


    解析:

    168、MyBatis是通过元素的____________子元素该元素来处理一对多关联关系的。

    答案:

    collection


    解析:

    169、如果拦截器类中的preHandle()方法的返回值为____________,则程序会继续向下执行处理器中的方法。

    答案:

    true


    解析:

    170、ssm框架中的m指的是____________框架?

    答案:

    mybatis;MyBatis;MYBATIS


    解析:

    171、@Transactional注解主要是针对数据的增、删、____________进行事务管理。

    答案:


    解析:

    172、在SpringMVC中,____________注解一般在异步获取数据时(ajax)使用。

    答案:

    @Responsebody


    解析:

    173、在实际应用中,无论是企业级项目,还是互联网项目,使用最多的一定是增删改查中的____________。

    答案:

    ;查询;select


    解析:

    174、____________框架可以简化地应用ssm框架。

    答案:

    springboot;SpringBoot;SPRINGBOOT


    解析:

    175、SpringBoot中可以在application.properties文件中修改端口号,使用的是____________属性。

    答案:

    server.port


    解析:

    176、请说出一种SpringBoot内嵌的web服务器,它是____________。

    答案:

    tomcat;Tomcat;TOMCAT


    解析:

    177、依赖注入的作用就是在使用Spring框架创建对象时,动态的将其所依赖的对象注入到Bean组件中。( )

    答案: 正确

    178、@Component注解用于描述Spring中的Bean,它是一个泛化的概念,仅仅表示一个组件,并且可以作用在任何层次,使用时只需将该注解标注在相应方法上即可。( )

    答案: 错误

    179、每次客户端请求singleton作用域的Bean时,Spring容器都会创建一个新的实例,并且不会管那些被配置成singleton作用域的Bean的生命周期。( )

    答案: 错误

    180、Spring中的AOP代理默认就是使用CGLIB代理的方式来实现的。( )

    答案: 错误

    181、JdbcTemplate类中还提供了大量的query()方法来处理各种对数据库表的查询操作。( )

    答案: 正确

    182、基于XML方式的声明式事务管理是通过在配置文件中配置事务规则的相关声明来实现的。( )

    答案: 正确

    183、MyBatis的更新操作也需要进行事务提交。( )

    答案: 正确

    184、创建的映射文件中的SQL语句要以面向对象的写法进行书写。( )

    答案: 错误

    185、MyBatis中,映射文件中可以包含多个id值相同的元素。( )

    答案: 错误

    186、在实际的项目开发中,Spring与MyBatis都是整合在一起使用的。( )

    答案: 正确

    187、Spring MVC支持JSP视图技术。

    答案: 正确

    188、Spring MVC的灵活性比较弱,易于与其他框架集成。( )

    答案: 错误

    189、SpringMVC中,@RequestMapping的method属性必须使用。( )

    答案: 错误

    190、SpringBoot中内嵌Tomcat默认的端口是8000。

    答案: 错误

    191、Spring Boot提供了spring-boot-starter-web为Web开发予以支持。

    答案: 正确

    192、以下MyBatis程序实现了查询功能。请进行程序填空。

    package com.neusoft;

     

    import com.xiaoqiu.entity.Student;

    import org.apache.ibatis.io.Resources;

    import org.apache.ibatis.session.SqlSession;

    import org.apache.ibatis.session.SqlSessionFactory;

    import org.apache.ibatis.session.SqlSessionFactoryBuilder;

     

    import java.io.InputStream;

     

    /**

     * Hello world!

     *

     */

    public class App 

    {

        public static void _____第一空_________( String[] args )throws Exception

        {

            // mybatis配置文件

            String resource = "SqlMapConfig.xml";

            // 得到配置文件流

            InputStream inputStream = Resources.getResourceAsStream(______第二空_______);

     

            // 创建会话工厂,传入mybatis的配置文件信息

            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()

                    .build(_______第三空__________);

     

            // 通过工厂得到SqlSession

            SqlSession sqlSession = sqlSessionFactory.openSession();

     

            

            Student student = _______第四空_______________.selectOne("StudentMapper.selectById", 2);

     

     

            System.out.println(student);

     

            // 释放资源

            sqlSession.________第五空_______________;

        }

    }

     

    以下是SpringMVC程序,请根据程序的逻辑进行填空。

    package com.neuedu.controller;

     

    import org.springframework.stereotype.Controller;

    import org.springframework.stereotype.Controller;

    import org.springframework.web.bind.annotation.RequestMapping;

     

    import javax.servlet.http.HttpServletRequest;

    import java.util.ArrayList;

    import java.util.List;

     

    ________第六空____________

    _____第七空____________("/HelloController")

    public class HelloController {

        @RequestMapping("/hello")

        public ______第八空________ hello(HttpServletRequest request){

            request.setAttribute("username","guoqlingling");

            List<Student> list=new ArrayList<______第九空____________>();

            list.add(new Student(1,"gql"));

            list.add(new Student(2,"gn"));

            VoStudent vs=new VoStudent();

            vs.setList(list);

            _____第十空_________.setAttribute("info",vs);

            return "next";

        }

    }

     

    答案:

    main

    resource

    inputStream

    sqlSession

    close()

    @Controller

    @RequestMapping

    String

    Student

    request


    解析:

    193、使用SpringBoot后台技术,编写一个接收前台ajax请求的程序(请写一个符合要求的类)。程序中的方法要接收一个String username,方法的逻辑是:如果username的值是aa或bb则返回页面"成功"字符串,否则返回"失败"字符串。(提示:导包代码可以省去。)

    答案:

    package com.example.controller;

     

    import org.springframework.web.bind.annotation.RequestMapping;

    import org.springframework.web.bind.annotation.RestController;

     

    import java.util.ArrayList;

    import java.util.List;

     

    @RestController

    @RequestMapping(" /Ajax1Controller")

    public class Ajax1Controller {

        @RequestMapping("/ajax")

        public String ajax(String username){

            if("aa".equals(username)||"bb".equals(username)){

                return "成功";

            }else{

                return "失败";

            }

        }

    }

    标分标准:共10分

    1 @RestController   

    2 @RequestMapping("/ajax")

    3  public String ajax(String username)

    4  if("aa".equals(username)||"bb".equals(username)){

                return "成功";

            }

       

    else{

                return "失败";

            }


    解析:

    194、编写代码,使用MyBatis框架技术,根据 主键ID查询记录

    数据库表:名称city,字段 city_id(int) ,city_name(varchar)

    对应实体类:

     

    package org.myproj.entity;

     

    public Class City{

    private Integer cityid;

    private String cityname;

     

    //省略getter和setter方法....

    }

     

    对应DAO接口:

     

    package org.myproj.mapper;

     

    public interface CityMapper{

     

    public City queryCityById(Integer cityid);

     

    }

     

    对应 Mapper映射文件CityMapper.xml 与 CityMaper类存放在相同目录(主配置文件未设置别名)

     

    请补充完善 CityMapper.xml 文件内容:

    <?xml version="1.0" encoding="UTF-8" ?>

     

    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

     

    <mapper namespace="_______1______ ">

     

    <resultMap type="______2_______" id="myCityMap">

     

    <id column="city_id" property="_____3________"/>

     

    <______4_______ column="city_name" property="_____5________"/>

     

    </resultMap>

     

    <select id="_____6____" parameterType="____7______" resultMap="____8_______">

     

    _______9______ from city where city_id=______10_______

     

    </select>

     

    </mapper>

     

    答案:

    org.myproj.mapper.CityMapper

    org.myproj.entity.City

    cityid

    result

    cityname

    queryCityById

    int

    myCityMap

    select *

    #{cityid}

    195、SpringMVC框架中,关于HandlerMappingt和HandlerAdapter,描述错误的是()。

    A、 HandlerAdapter使用了适配器设计模式。

    B、 HandlerAdapter对Handler进行包装并执行。

    C、 多个HandlerMapping可以并存。

    D、 HandlerMapping负责找到Handler并执行。

    答案: D
    解析:

    196、                                               负责根据请求找到对应的Handler及Interceptor,将它们封装在HandlerExecutionChain中返回给前端控制器。

    答案:

    HandlerMapping;处理器映射器

    197、多个处理器映射器可以并存,                                判断url能让哪些映射器映射。

    答案:

    前端控制器;DispatcherServlet

    198、实际开发时使用                                                           配置注解映射器和适配器。

    答案:

    mvc:annotation-driven

    199、SpringMVC框架中,关于文件上传叙述错误的是()。

    A、

    formenctype="multipart/form-data"

     

    B、

    处理器中处理文件上传的方法必须有CommonMultipartFile类型的参数

     

     

     

    C、

    必须使用transferTo()

    D、

    CommonMultipartFile类型的参数,如果没有特殊处理,其名称必须是上传控件的name的值。

     

     

    答案: C
    解析:可以使用流操作。

    200、应用SpringBoot为Android App搭建后台,项目基包名为com.example.app,其下包括dao,service,domain等子包。返回的数据为JSON格式。

    将代码中的空白处补充完整。

    User.java

    public class User implements Serializable {

        private Integer id;

        private String loginname;

        private String password;

    ...

    }

    UserDao.java

      ________(1)____________ 

    UserDao {

        User select(User user);

     

    }

    UserMapper.xml

    <mapper namespace="______(2)____________">

        <select id="______(3)___________" resultType="user"  _______(4)__________="user">

            select * from user where loginname=#{_____(5)________} and password=#{password};

        </select>

    </mapper>

     

    UserService.java

     

    @Service

    public class UserService {

        _____(6)______________

        UserDao userDao;

        public User login(User user){

            return userDao.select(user);

        }

    }

     

    UserController.java

    ____(7)_______________

    public class UserController {

        @Autowired

       _______(8)___________;

        _______(9)_______("/login")

        public User login(User user){

            return userService.login(user);

        }

     

    }

    application.yml

    mybatis:

      mapper-locations: classpath:mapper/*.xml

      type-aliases-package:_______(10)___________

    spring:

      datasource:

        driver-class-name: com.mysql.jdbc.Driver

        url: jdbc:mysql://localhost:3306/my12306

        username: root

        password: ******

     

    答案:

    @Mapper

    com.example.app.dao.UserDao

    select

    parameterType

    loginname

    @Resource;@Autowired

    @RestController

    UserService userService;

    @RequestMapping

    com.example.app.domain


    解析:

    201、IOC思想的具体实现方法是                              

    答案:

    DI;依赖注入

    202、关于SpringMVC运行流程,以下叙述错误的是()。

    A、 用户请求首先会经过DispatcherServlet,DispatcherServlet接收到请求后会将请求信息交给处理映射器(HandlerMapping)。

    B、 HandlerMapping会根据请求的url找到对应处理器(Handler),并返回一个执行链。 

    C、 DispatcherServletModelAndView请求视图解析器(ViewReslover)解析,ViewReslover返回具体的View,并对View进行渲染视图

    D、 DispatcherServlet拿到执行链后会调用处理适配器(HandlerAdapter),并调用相应的Handler处理,然后返回ModelAndViewDispatcherServlet 

    答案: C
    解析:View进行渲染视图的是DispatcherServlet 

    203、SpringBoot项目的配置文件类型为()。

    A、 .xml

    B、 .properties和.yml

    C、 .xml和.properties

    D、 .xml和.yml

    答案: B

    204、Spring中关于Bean的自动装配,实现按类型装配的是()。

    A、 @Resources 

    B、 @Autowired + @Qualifier 

    C、 @AutoWired 

    D、 @Resources+ @Qualifier 

    答案: C

    205、Mybatis中,#{}和${}的描述,错误的是()。

     

     

     

    A、 #{}是预编译处理,${}是字符串替换。

    B、 Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;

    C、 Mybatis在处理${}时,就是把${}替换成变量的值。

    D、

    使用${}可以有效的防止SQL注入,提高系统安全性。

     

    答案: D
    解析:

    使用#{}可以有效的防止SQL注入,提高系统安全性。

     

    206、Mybatis中,当实体类中的属性名和表中的字段名不一样时,正确的处理方法是()。

     

    A、

    通过 <resultMap>来映射字段名和实体类属性名的一一对应的关系。

     

     

    B、 通过 <resultType>来映射字段名和实体类属性名的一一对应的关系。

    C、 通过在查询的sql语句中定义字段名的别名,让字段名的别名和字段名一致。

    D、 不用处理

    答案: A

    207、现有两个实体类User.java和Address.java,代码片段如下:

    public class User {

    private Integer id;

    private String userName;

    private String userCode;

    private String userPassword;

    private List<Address> addressList;

            ...

    }

     

    public class Address {

    private Integer id;

    private Integer postCode;

    private String addressContent;

            ...

    }

    现在需要做一个关联查询(address表中有一个userId的字段,关联user表的主键id),根据用户id来获取该用户的地址列表,请写出mapper文件中的实现代码。

     

    答案:

    UserMapper.xml文件中:

    <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="userMap">   
     select

    *                                                                                                   

     from user
     where id = #{id,jdbcType=INTEGER}
    </select>

    <resultMap id="userMap" type="user" extends="BaseResultMap">     

    <collection property="addressList" ofType="address " column="id" select="selectByUserId"/>  
    </resultMap>

     

    AddressMapper.xml文件中:

    <

    <select id="selectByUserId" parameterType="int" resultType="address">
     select * from address
    where  userid=#{userId}     
     
    </select>

     


    解析:

    208、在使用Spring框架之后,对象的实例不再由调用者来创建,而是由____来创建。 

    答案: spring容器

    209、对于____作用域的Bean,Spring 只负责创建,当容器创建了Bean 实例后,Bean的实例就交给客户端代码来管理,Spring容器将不再跟踪其生命周期。 

    答案: prototype

    210、在Spring 的配置文件中,配置切面使用的是____元素 

    答案: <aop:aspect>;aop:aspect

    211、JdbcTemplate类中的____方法可以完成插入、更新和删除数据的操作。 

    答案: update();update

    212、声明式事务管理是通过____技术实现的事务管理。 

    答案: AOP;aop

    213、MyBatis是通过<resultMap>元素的____子元素该元素来处理一对多关联关系的。 

    答案: <collection>;collection

    214、SpringMVC使用包装POJO类型数据绑定时,如果前端条件参数是包装类中POJO的子属性,则参数名必须为____。 

    答案: 对象.属性

    215、当有多个拦截器同时工作时,它们的____方法会按照配置文件中拦截器的配置顺序执行。 

    答案: preHandle();preHandle

    216、以下哪个不是Mybatis映射文件中常见的标签 

    A、 <select>

    B、 <find>

    C、 <delete>

    D、 <resultMap>

    答案: B

    217、使用 Mybatis持久化框架进行数据查询需要返回一个实体类的集合,在<select>标签中需要定义的一个属性叫( ) 

    A、 List

    B、 resultMap

    C、 HashMap

    D、 Tree

    答案: B

    218、通过spring来获取一个com.model.User的实例,并且要注入private String username的时候,需要配置文件中怎么写 

    A、 <bean id="user" class= "com.model.User" username= "username" >

    B、 <spring id= "user" class= "com.model.User" username= "username" >

    C、 <bean id="user" class=" com .model.User" p:username= "username">

    D、 <spring id="user" class= "com.model.User" p:username= "username">

    答案: C

    219、通过spring容器来获取一个类的实例的Spring容器接口是( ) 

    A、 SqlSessionFactory

    B、 ApplicationContext

    C、 SqlSession

    D、 Context

    答案: B

    220、SpringMVC中有一个servlet,是通过它来将前端的请求分发到各控制器的,这个servlet的名字是( ) 

    A、 DispatcherServlet

    B、 ServletRequest

    C、 ServletResponse

    D、 DispatcherMapper

    答案: A

    221、声明控制器类的注解是( ) 

    A、 @Autowired

    B、 @Controller

    C、 @RequestMapping

    D、 @RequestParam

    答案: B

    222、将前台的form中input控件的name属性绑定到控制器类中的方法参数的注解是( ) 

    A、 @RequestParam

    B、 @RequestMapping

    C、 @Autowired

    D、 @Controller

    答案: A

    223、Mybatis 映射文件中的根标签<mapper>中在对应接口时必须要指定的一个属性是( ),如果要对应接口进行数据查询,这个属性的值的含义是( ) 

    A、 url;接受数据信息位置

    B、 servlet ;用于调用数据库

    C、 protect ;定义工程

    D、 namespace ; 唯一id或全路径名

    答案: D

    224、spring中Bean的默认作用域为( ) 

    A、 singleton

    B、 request

    C、 prototype

    D、 application

    答案: A

    225、通常用来将登录用户设置为session对象的注解是( ) 

    A、 @Controller

    B、 @SessionAttribute

    C、 @Autowired

    D、 @RequestMapping

    答案: B

    226、通常在Java项目中,会采用通过FileSystemXmlApplicationContext 类来实例化ApplicationContext容器的方式。 

    答案: 错误

    227、Spring中基于构造方法的依赖注入通过调用带参数的构造方法来实现,每个参数代表着一个依赖。 

    答案: 正确

    228、每次客户端请求singleton作用域的Bean时,Spring容器都会创建一个新的实例,并且不会管那些被配置成singleton作用域的Bean的生命周期。 

    答案: 错误

    229、Spring中的AOP代理默认就是使用CGLIB代理的方式来实现的 

    答案: 错误

    230、定义jdbcTemplate时,需要将dataSource注入到jdbcTemplate中。 

    答案: 正确

    231、创建的映射文件中的SQL语句要以面向对象的写法进行书写。 

    答案: 错误

    232、与<insert>元素一样,<update> 和<delete>元素在执行完之后,也会返回一个表示影响记录条数的整数。 

    答案: 正确

    233、在MyBatis中<if>元素用于单条件分支判断,当某个<if>的test属性判断成立,然后跳过其他<if>元素进行动态SQL组装。 

    答案: 错误

    234、Spring MVC的灵活性比较弱,易于与其他框架集成。 

    答案: 错误

    235、@RequestMapping的method属性必须使用。 

    答案: 错误

    236、使用mybatis框架完善以下基于user表的CRUD操作。user表所对应的实体类如下:
    package com.demo.po.User;
    public class User {
    private int id;
    private String name;
    private int age;
    public User(String name,int age){
    this.name=name;
    this.age=age;
    }
    public User(){
    }
    //省略setter和getter
    }
    请完善sql映射文件com.demo.mapper.UserMapper.xml的实现
    <insert id="insertUser" parameterType=" [1] ">
    [2] 
    </insert>
    <delete id="deleteUser" parameterType=" [3] ">
    DELETE FROM `user` WHERE id = #{id}
    </delete>
    <update id="updateUser" parameterType=" [4 ] ">
    ____ [5]
    </update>
    <select id="selectAllUsers" resultType=" [6] ">
    [7] 
    </select>
    在核心配置文件中配置sql映射文件:
    <configuration>
    <!-- 配置映射文件 -->
    <mapper resource=" [8] "/>
    </configuration>
    完善以下测试类中对user表的CRUD的操作
    public void insertUser(int id) {
    SqlSession session = sessionFactory.openSession();
    //实例化一个用户
    User user = User("yxz",18);
    //添加上述用户到数据库
    [9] 
    //提交事务
    session.commit();
    //关闭session
    [10] 
    }

    答案:

    com.demo.po.User

    value(#{username},#{age})

    int

    com.demo.po.User

    username=#{username},age=#{age}

    com.demo.po.User

    select * from user

    com/demo/mapper/UserMapper.xml

    session.insert("com.demo.mapper.UserMapper. insertUser",user)

    session.close()


    解析:

    237、根据提供内容完成代码填空。(每空2分)

    注:(表名为 employee)

    首页面

     

    列表页面

     

    实体类

     

    controller

     

    mapper

     

    mapper.xml

     

     

     

    答案:

    <c:forEach items="${list}" var="emp">

    ${emp.email} 

     

    EmployeeMapper  employeeMapper; 

     

     

    @RequestMapping("/emp/{id}")或者@GetMapping("/emp/{id}") 

     

     

    @RequestMapping("/emp/list") 或者@GetMapping("/emp/list") 

     

     

    @PathVariable("id"); 

     

     

    redirect:emp/list 

     

     

    public ListselectAllEmp(); 

     

     

    deleteEmpById(Integer id);

     

     

    select * from employee;


    解析:

    238、完成springboot入门案例。

    注:(1.不需要编写配置文件和maven文件 2.主程序名称为HelloApplication,控制器为HelloController )。

    答案:

    方式一:

    @Controller

    @SpringBootApplication

    @Configuration

    public class HelloApplication {

     

        @RequestMapping("/hello")

        @ResponseBody

        public String hello() {

            return "hello world!";

        }

     

        public static void main(String[] args) {

            SpringApplication.run(HelloApplication.class, args);

        }

    }

    方式二:

    @SpringBootApplication

    @Configuration

    public class HelloApplication {

        public static void main(String[] args) {

            SpringApplication.run(HelloApplication.class, args);

        }

    }

    @RestController

    public class HelloController {

     

        @RequestMapping("/hello")

        public String hello() {

            return "hello world!";

        }

    }

     


    解析:

    239、使用MyBatis+SpringBoot编写用户登录程序

    数据库表:person

    字段:

    id 主键 int 自增长

    username varchar 50

    userpwd varchar 50

     

    1)- 与数据库映射Person类编写(放置到 com.example.domain包中)

     

    2)- 操作数据库的Mapper接口PersonMapper,放置到到包:com.example.mapper中,

    用户登录验证方法名为 personLogin,返回值是查询到的Person数据,需要传入一个Person对象进行校验

     

    3)- 编写sql语句的 mapper映射文件,部分内容已经给出。补充未完成的。

    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE mapper

    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

     

    4)- 与Person登录相关Service类 PersonService编写

     

    5)- 处理请求的Controller:PersonController编写

     

    6)- 进行用户登录的主页面:index.html 需要使用ajax进行验证,

    信息输入时,需要对用户名和密码进行非空验证。登录成功,弹出对话框显示成功,或者是失败。

    所需的 jquery.js文件已经保存在与网页文件相同目录下。补充未完成的。

    <!DOCTYPE html> 

    <html xmlns:th="http://www.thymeleaf.org"> 

    <head> 

        <meta charset="UTF-8"/> 

    </head> 

    <body> 

     

    </body> 

    </html>

     

    答案:

    使用MyBatis+SpringBoot编写用户登录程序

    数据库表:person

    字段:

    id 主键 int 自增长

    username varchar 50

    userpwd varchar 50

     

    1)- 与数据库映射Person类编写(放置到 com.example.domain包中)

    package com.example.domain;

    public class Person implements Serializable{

    private Integer id;

    private String username;

    private String userpwd;

    public Integer getId() {

    return id;

    }

    public void setId(Integer id) {

    this.id = id;

    }

    public String getUsername() {

    return username;

    }

    public void setUsername(String username) {

    this.username = username;

    }

    public String getUserpwd() {

    return userpwd;

    }

    public void setUserpwd(String userpwd) {

    this.userpwd = userpwd;

    }

     

    }

     

    2)- 操作数据库的Mapper接口PersonMapper,放置到到包:com.example.mapper中,

    用户登录验证方法名为 personLogin,返回值是查询到的Person数据,需要传入一个Person对象进行校验

     

    @Mapper

    public interface PersonMapper {

    public Person personLogin(Person person);

    }

     

     

    3)- 编写sql语句的 mapper映射文件,部分内容已经给出。补充未完成的。

    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE mapper

    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

     

    <mapper namespace="com.neuedu.demo.mapper.PersonMapper">

    <select id="personLogin" parameterType="com.neuedu.domain.Person" resultType="com.neuedu.domain.Person">

    select * from person where username=#{username} and userpwd=#{userpwd}

    </select>

    </mapper>

     

     

    4)- 与Person登录相关Service类 PersonService编写

    @Service

    @Transactional

    public class PersonService {

    @Autowired

    PersonMapper personMapper;

     

    public Person personLogin(Person person) {

    Person p = null;

    p = this.personMapper.personLogin(person);

    return p;

    }

    }

     

     

    5)- 处理请求的Controller:PersonController编写

    @RestController

    public class PersonController {

    @Autowired

    PersonService personService;

     

    @RequestMapping("/personLogin")

    public Object personLogin(Person person) {

    Person p = personService.personLogin(person);

    Map<String,Object> myMap = new HashMap<String,Object>();

    myMap.put("data",p);

    return myMap;

     

    }

    }

     

     

    6)- 进行用户登录的主页面:index.html 需要使用ajax进行验证,

    信息输入时,需要对用户名和密码进行非空验证。登录成功,弹出对话框显示成功,或者是失败。

    所需的 jquery.js文件已经保存在与网页文件相同目录下。补充未完成的。

    <!DOCTYPE html> 

    <html xmlns:th="http://www.thymeleaf.org"> 

    <head> 

        <meta charset="UTF-8"/> 

     

    </head> 

    <body> 

    <script type="text/javascript" src="jquery.js"></script>

    <script type="text/javascript">

    function personLogin(){

    var username = $("input[name='username']").val();

    var userpwd = $("input[name='userpwd']").val();

    if(username==""){

    alert('用户名不能为空!');

    }else if(userpwd==""){

    alert('用户密码不能为空!');

    }else{

    var url = "personLogin?username="+username+"&userpwd="+userpwd;

    $.getJSON(url,function(data){

    var person = data.data;

    if(person==null){

    alert("登录失败!");

    }else{

    alert("登录成功!");

    }

    });

    }

    }

    </script>

     

    用户名:<input type="text" name="username"/><br/>

    用户密码:<input type="text" name="userpwd"/><br/>

    <input type="button" value="用户登录" onclick="personLogin()"/>

     

     

    </body> 

    </html>

     

    只要能够实现效果即可,可以选用多种不同方式实现。

     

    240、下列不属于maven声明周期的是(    )

    A、 validate 

    B、 compile 

    C、 package 

    D、 npm

    答案: D
    解析:npm 属于nodejs的命令,不属于maven声明周期

    241、Mybatis属于web开发中的哪一层框架( )

    A、 逻辑层   

    B、 数据持久层

    C、 控制层

    D、 前端

    答案: B
    解析:Mybatis是一个数据持久层ORM框架

    242、使用Mybatis操作mysql数据库时除了引入Mybatis自身类库外,还有哪个类库也是必须引入的( )

    A、 mysql-connector-java

    B、 common-lang3

    C、 spring-beans

    D、 spring-core

    答案: A

    243、在Mybatis核心配置文件中不属于configuration的直接子标记是

    A、 properties

    B、 settings

    C、 data

    D、 mappers

    答案: C
    解析:mybatis的核心配置文件包含如下标签

    configuration

        properties
        settings
        typeAliases
        typeHandlers
        objectFactory
        plugins
        environments
            environment
                transactionManager
                dataSource
        databaseIdProvider
        mapper

     

    244、以下关于SQLSessionFactory说法不正确的是(  )

    A、 SQLSessionFactory是轻量级API,用于创建SQLSession对象

    B、 SQLSessionFactory一般可以通过SQLSessionBuilder创建

    C、 SQLSessionFactory类的实例对象是线程安全的

    D、 SQLSessionFactory一旦被创建在程序运行期间可以共享,不用多次创建。

    答案: A
    解析:SqlSessionFactory是MyBatis的关键对象,它是个单个数据库映射关系经过编译后的内存镜像.

    SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象类获得,而SqlSessionFactoryBuilder则可以从XML配置文件或一个预先定制的Configuration的实例构建出SqlSessionFactory的实例.每一个MyBatis的应用程序都以一个SqlSessionFactory对象的实例为核心.同时SqlSessionFactory也是线程安全的,SqlSessionFactory一旦被创建,应该在应用执行期间都存在.在应用运行期间不要重复创建多次,建议使用单例模式.SqlSessionFactory是创建SqlSession的工厂

     

    245、以下方法那个不是SQLSession的的API方法()

    A、 selectOne

    B、 selectList

    C、 selectAll

    D、 selectMap

    答案: C

    246、以下不属于Mybatis动态SQL的标记是

    A、 where

    B、 select

    C、 if

    D、 trim

    答案: B
    解析:select 是普通的mybatis的标记,不属于动态SQL标记

    247、以下对Mybatis中关联查询描述正确的是(     )

    A、 关联查询可以在一对多的实体关系中使用

    B、 关联查询只能使用一条sql语句实现

    C、 关联查询使用collection做一对一的映射

    D、 关联查询不能延迟加载

    答案: A

    248、下列关于Mybatis延迟加载说法不正确的是(   )

    A、 延迟加载有两个属性需要配置分别为lazyLoadingEnabled和aggressiveLazyLoading

    B、 延迟加载可以在原始方式调用(如selectOne)和代理映射方式调用时使用

    C、 延迟加载不能在关联查询中使用

    D、 延迟加载可以在一对多关系中使用

    答案: C

    249、下面关于spring框架描述错误的是(   )

    A、 Spring是一个开源框架

    B、 Spring框架两大核心功能分别为依赖注入和面向切面编程

    C、 Spring框架主要依赖IOC容器管理Bean的生命周期

    D、 Spring是唯一实现AOP面向切面编程的框架

    答案: D

    250、以下不属于Spring框架具体模块的是( )

    A、 spirng-core

    B、 spring-beans

    C、 aspectj

    D、

    spring-expression

     

    答案: C

    251、下列关于依赖注入描述错误的是( )

    A、 依赖注入可以通过构造器实现

    B、 依赖注入可以通过setter方法实现    

    C、 依赖注入只能注入引用类型

    D、 依赖注入可以实现List、Set、Map等类型的注入

    答案: C

    252、以下不属于Spring工厂中Bean的作用域的是( )

    A、 Singleton

    B、 prototype

    C、 request

    D、 application

    答案: D
    解析:

    253、下列哪个注解不可以声明Bean对象( )

    A、 @Component

    B、 @Service

    C、 @Repository

    D、 @Autowired

    答案: D
    解析:

    254、下列关于AOP概念描述正确的是

    A、 切面是切点和通知组成,通知和切点共同定义了切面的全部内容即:它是什么,在何时何处完成其功能。 

    B、 连接点是定义了在何处应用切面,AOP通过“连接点”定位特定的切面 

    C、 切面的工作被称之为通知,定义了切面是什么及何时使用 

    D、 代理类是一个被AOP织入通知后,产生一个结果类,它是融合了原类和通知逻辑的代理类 

    答案: B
    解析:

    255、SpringMVC在执行过程中通过 ____________ 组件类查找具体的Handler

    答案:

    HandlerMapping

    256、SpringMVC中实现拦截器的类需要实现___________ 接口

    答案:

    HandlerInterceptor

     

    257、SpringMVC使用______________注解将路径中的参数映射到方法的入参。

    答案:

    @PathVariable ; PathVariable

    258、SpringMVC中可以使用____________注解将方法的返回类型数据直接响应给客户端

    答案:

    @ResponseBody;ResponseBody

    259、SpringMVC中实现文件上传时form表单的提交方法必须为 ________ 类型

    答案:

    POST;post

    260、SpringMVC的拦截器中preHandle方法返回__________是后续的方法才会执行,否则请求终止

    答案:

    true

    261、SpringMVC中当请求的【参数名称】和【处理器形参名称】不一致的时候需要使用注解__________进行自定义的绑定

     

    答案:

    @RequestParam


    解析:

    262、SpringBoot的默认配置文件后缀名可以为.properties也可以是__________

    答案:

    .yml ; yml

    263、Mybatis使用重量级组件SQLSessionFactory创建______________对象

    答案:

    SqlSession

    264、Spring的AOP使用了两种动态代理机制,一种是基于JDK的动态代理机制,另外一种是使用___________

    答案:

    cglib;CGLIB;Cglib

    265、SpringMVC中的Controller方法的返回值类型有void、___________ 、字符串

    答案:

    ModelAndView

    266、Mybatis的缓存分为一级缓存和二级缓存,一级缓存作用域是SQLSession,二级缓存的作用域是___________

    答案:

    Mapper;namespace

    267、MyBatis有两种事务管理类型,即MANAGED和_____________

    答案:

    jdbc;JDBC


    解析:MyBatis的事务管理分为两种形式:

    1)使用JDBC的事务管理机制。

    这种机制就是利用java.sql.Connection对象完成对事务的提交

    2)使用MANAGED的事务管理机制。

    这种机制mybatis自身不会去实现事务管理,而是让程序的Web容器或者Spring容器来实现对事务的管理。

     

     

    268、Spring的Bean工厂中Bean对象的依赖注入可以使用构造函数注入和____________

     

    答案:

    属性注入;设值注入;setter注入

    269、Spring的Bean工厂核心xml配置文件的根节点是____________

    答案:

    beans

    270、Mybatis封装了JDBC的操作,使用时需要依赖数据库驱动类库

    答案: 正确

    271、AOP中实现动态代理必须使用JDK的方案,且目标类必须实现接口。

    答案: 错误

    272、SpringBoot中的启动器(starter)可以理解为一系列适配好的类库的集合

    答案: 正确

    273、SpringBoot的一大特点是约定大于配置

     

    答案: 正确

    274、Mybaits的二级缓存默认开始,可以全局使用

     

    答案: 错误

    275、Mybaits的API中SQLSessionFactory是线程不安全的,需要配置线程独立创建一个对象进行使用

    答案: 错误

    276、SpringMVC中如果没有进行配置则使用默认的视图解析器

    答案: 正确

    277、SpringMVC的程序中所有请求都需要通过前端控制器(DispatcherServlet)进行转发处理。

    答案: 正确

    278、Mybaits框架必须整合在SSM中才能运行,不能独立使用。

     

    答案: 错误

    279、Mybatis框架是Apache在Ibatis框架基础上开发而来的。

    答案: 正确

    280、Mybatis框架使用代理模式访问数据库时需要自定义实现代理类

    答案: 错误

    281、Mybatis中使用代理方式开发需要保证接口中的方法和xml中声明的Statement的Id保持一致

    答案: 正确

    282、Mybatis默认提供了常见的数据类型处理器帮助开发人员解析常见数据类型

    答案: 正确

    283、SQLSession的update方法也可以执行一条插入语句。但是为了保证语义,开发时尽量使用insert方法做插入功能

    答案: 正确

    284、mybatis是半自动化的持久层框架,所以在mybatis中无法实现关联查询

    答案: 错误

    285、下面是Mybatis逆向工程生成的Mapper代理接口和XML映射文件,请根据上下文补全空格中的内容,使程序能正常执行。

    1. 实体类TOrder 代码

    package com.neuedu.entity;

    import java.io.Serializable;
    import java.util.Date;

    public class TOrder implements Serializable {
       
        //主键属性
        private Integer orderId;

        private Integer accountId;

        private String orderAmount;

        private String orderAddress;

        private Date createtime;
        
        
        //setter、getter方法已略
    }

    2. Mapper代理 TOrderMapper

    package com.neuedu.mapper;

    import com.neuedu.entity.TOrder;
    import com.neuedu.entity.TOrderExample;
    import java.util.List;

    public interface TOrderMapper {
        
        int deleteByPrimaryKey(Integer orderId);

        int insert(TOrder record);

        TOrder selectByPrimaryKey(Integer orderId);

             (1空)       updateByPrimaryKey(TOrder record);
    }

     

    3.xml映射文件如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <mapper namespace="com.neuedu.mapper.                (2空)                ">
      <resultMap id="BaseResultMap" type="com.neuedu.entity.             (3空)                ">
        <id column="order_id" jdbcType="INTEGER" property="orderId" />
        <result column="account_id" jdbcType="INTEGER" property="                 (4空)               " />
        <result column="order_amount" jdbcType="VARCHAR" property="orderAmount" />
        <result column="order_address" jdbcType="VARCHAR" property="orderAddress" />
        <result column="createtime" jdbcType="TIMESTAMP" property="createtime" />
      </resultMap>
     
     
      <sql id="Base_Column_List">
        order_id, account_id, order_amount, order_address, createtime
      </sql>
     
      <select id="selectByPrimaryKey"    parameterType="java.lang.Integer" resultMap="                 (5空)                   ">

        select
        <include refid="           (6空)               " />
        from t_order
        where order_id = #{orderId,jdbcType=INTEGER}
      </select>
     
      <delete id="deleteByPrimaryKey"             (7空)           ="java.lang.Integer">
        delete from t_order
        where order_id = #{orderId,jdbcType=INTEGER}
      </delete>


      <insert id="             (8空)            " parameterType="com.neuedu.entity.TOrder">
        insert into t_order (order_id, account_id, order_amount,
          order_address, createtime)
        values (#{orderId,jdbcType=INTEGER},

                   #{accountId,jdbcType=INTEGER},

                  #{orderAmount,jdbcType=VARCHAR},
                  #{orderAddress,jdbcType=VARCHAR},

                            (9空)             {createtime,jdbcType=TIMESTAMP})
      </insert>
        
      <update id="        (10空)           "  parameterType="com.neuedu.entity.TOrder">
        update t_order
        set account_id = #{accountId,jdbcType=INTEGER},
          order_amount = #{orderAmount,jdbcType=VARCHAR},
          order_address = #{orderAddress,jdbcType=VARCHAR},
          createtime =    #{createtime,jdbcType=TIMESTAMP}
        where order_id = #{orderId,jdbcType=INTEGER}
      </update>
    </mapper>

    答案:

    int

    TOrderMapper

    TOrder

    accountId

    BaseResultMap

    Base_Column_List

    parameterType

    insert

    #

    updateByPrimaryKey

    286、有一个Mybatis的程序连接数据库,其xml映射文件和核心配置文件“SqlMapConfig.xml”如下,请编写Java代码实现插入功能

    1)XML映射文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="kaoshi">

        <!--插入一条记录  Map参数类型-->
        <insert id="insertUser" parameterType="java.util.Map">
            insert into t_user
                (user_id,user_name,gender,birthday,status)
            values
                (#{userId},#{userName},#{gender},#{birthday},#{status}    )
        </insert>

    </mapper>

     

    2)核心配置文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <environments default="development">

            <environment id="development">

                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
               
                    <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8"/>
                    <property name="username" value="root"/>
                    <property name="password" value="root"/>
                </dataSource>
            </environment>

        </environments>
        <mappers>
            <mapper resource="Mapper.xml"/>
        </mappers>
    </configuration>

     

     

    答案:

    package com.neuedu;

    //导包,可省略
    import com.neuedu.entity.User;
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    import org.junit.Before;
    import org.junit.Test;

    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;

    public class FirstTest {

        SqlSessionFactory factory = null;                                                                          

        @Before
        public void before() throws IOException {
            //读取配置文件的流
            InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");         
            //创建工程类
            factory = new SqlSessionFactoryBuilder().build(is);                                             

        }

        /**
         *  插入一条用户记录  参数 是 Map
         */
        @Test
        public void testinsertUser(){
            //1 获取SQLSession
            SqlSession session  = factory.openSession();                              

            String statementId = "test.insertUser";                                      

     

            //创建了一个待插入的 用户对象
            Map user = new HashMap();                                                          (

            user.put("userId",4);
            user.put("userName","诸葛亮");
            user.put("gender","男");
            user.put("birthday",new Date());
            user.put("status",0);

            int insertCount = session.insert(statementId,user);                            


            System.out.println("insertCount:"+insertCount);
            session.commit();                                                                                    

            session.close();                                                                                        

        }
    }


    解析:

    287、请画出MVC模型图。

    答案:

     


    解析:

    288、以下mybatis程序的映射文件中有五处错误,请找出来。

    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

    <!--针对student表的一个映射文件-->

    <mappers space="com.mapper.StudentMapper">

        <update name="selectAll" result="Student">

            select * from student

        </update>

    </mappers>

     

    答案:

    1mappers改为mapper。

    2space改为namespace。

    3<update></update>标签改为<select></select>。

    4name改为id。

    5result改为resultType。


    解析:

    289、Mybatis分页时可以写分页的语句或者用到一个类,这个类的名字叫                         

    答案:

    RowBounds

    290、声明控制器类的注解是                            

    答案:

    @Controller

    291、在SpringMVC框架中,通过AJAX请求http://localhost:8080/springmvcdemo/getUserList.action 向服务器发送查询用户列表请求,服务器端控制器调用UserService中的getUserList方法返回包含所有用户对象User的集合对象,请根据此要求完成控制器程序。

     

    答案:

    @Controller        

     

    public class UserController {

     

    @Autowired        

     

    UserService service;      

     

    @RequestMapping("/getUserList.action")  

     

    @ResponseBody      

     

    public List<User> getUserList(){

     

    List<User> list = service.getUserList();  

     

    return list;        

     

    }

     

    }

     

    292、以下代码是东软云医院his系统的添加病例信息功能的业务层实现代码和dao层代码,请根据注释与代码逻辑,找出其中的5处错误或者不当之处。

     

    答题方式举例:

    xx行代码有错误,应该改为xxx

    答案:

    1行代码有错误,应改为@Service

    5行代码有错误,应改为@Autowired

    12行代码有错误,应改为@Transactional

    16行代码有错误,应改为recorddao.addone(record);

    24行代码有错误,private应改为public


    解析:

    293、请根据下面的代码,画出类图

     

    答案:

     

     


    解析:

    294、根据文字提示画出对应时序图。

    1,打开微信扫一扫

    2,返回微信扫一扫界面

    3,扫描商家收款码

    4, 商家生成收款二维码

    5,返回收款二维码

    6,识别商家收款码

    7,提示用户输入微信支付密码

    8,输入微信支付密码

    9,微信验证用户输入密码正确

    10,提示用户支付成功

    注:(对象有:用户,微信app,商家);

     

    答案:

     

     


    解析:

    295、如下代码使用mybatis的dao接口开发方式。有什么问题?如何解决?解决时需要注意什么?

    接口

    public interface UserDao {

        public List<User> findAll();

        public void save(User user);  

    }

     

    实现类

    public class UserDaoImpl implements UserDao {

        private SqlSessionFactory sessionFactory;

        public UserDaoImpl(SqlSessionFactory sessionFactory) {

            this.sessionFactory = sessionFactory;

        }

        public List<User> findAll() {

            SqlSession sqlSession = sessionFactory.openSession();

            List<User> userList = sqlSession.selectList("userMapper.findAll");

            sqlSession.close();

            return userList;

        }

        public void save(User user) {

            SqlSession sqlSession = sessionFactory.openSession();

            sqlSession.insert("userMapper.save",user);

            sqlSession.commit();

            sqlSession.close();

        }

    }

    mapper文件

    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE mapper

            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

    <mapper namespace="userMapper">

        <select id="findAll" resultType="com.hxy.domain.User">

            select * from user

        </select>

        <insert id="save" parameterType="com.hxy.domain.User">

            insert into user values(null ,"${username}",#{password},#{sex},#{address},#{birthday})

        </insert>

    </mapper>

     

    答案:

    存在如下问题

    1.Dao实现类存在大量重复代码 (

    2.调用SqlSession方法时,将statement的id(也就是namespace.id,比如userMapper.findAll)硬编码了(2分)

    3.SqlSession的方法中,要求传入的参数是Object类型的,也就是说,如果传错参数,运行时才会报错,不利于开发(2分)

    使用mybatis面向接口的开发方式

    使用时需要注意

    1. 映射文件的namespace要与接口的全路径名一致;

    2.映射文件的Statement的id要与接口的方法名一致;

    3.statement的输入类型要与接口的输入类型一致;

    4.Statement的输出类型要与接口的输出类型(或泛型的类型)一致

     


    解析:

    296、因业务发展需求,需要开发一个学院班级管理系统,其基本业务需求是管理员可以登录、找回密码,可以查看、修改、删除、录入班级基本信息。根据题中所述分析有哪些角色,哪些用例,请画出用例图。

    答案:

     


    解析:

    297、基本Web应用程序,画出登录功能的时序图。

    答案:

     


    解析:

    298、以下代码实现在SpringMVC框架中上传文件功能。请仔细阅读代码,找出其中5处错误。

    springmvc-config.xml代码片断如下:

     

    FileUploadController.java代码片段如下:

    index.jsp中代码片段如下:

    答案:

    springmvc-config.xml中:
    34行应为:<bean id="multipartResolver"                                    
    FileUploadController.java中:
    将第12行改为:@RequestMapping("/upload")    或者修改index.jsp文件中第5行为action="uploadFile" 

    18行应为:if(!filepath.getParentFile().exists()){                           

    index.jsp中:

    5行应为:<form action="upload" enctype="multipart/form-data" method="post">   

    将第6行改为:<input type="file" name="file"/>或者修改FileUploadController.java文件中第13行方法第一个参数名为fileupload      


    解析:

    299、小刘是一家大型水果批发行的仓库管理员,平常对计算机编程很感兴趣,并利用业余时间参加了某个IT培训机构的Java编程课程。

    近期随着单位业务规模的扩大,经常出现水果库存不足但没有得到及时补充的情况。

    单位经理希望小刘能够针对此种情况设计一款软件,解决相应问题。

    假设你是小刘,面对此种情况,请使用所学的Java框架知识进行相关程序设计,绘制出相关的流程图。

     

    答案:

     

    300、水果行的库管员小刘拍摄了大量的水果商品照片,希望将这些照片上传到本公司的官方网站上。

    他通过近期学过的SpringBoot框架知识,想要通过web网页上传图片文件。

    为了防止文件重名相互覆盖问题发生,需要在上传时保持文件扩展名不变,但主文件名以随机文件名称替代,

    将其保存至 c:image目录下,上传成功后以JSON格式返回结果信息。

    以下是其编写的部分代码,请找出错误的部分并进行修改。

     

    答案:

    7行应改为:method="post"

    10行应改为:type="submit"

    15行应改为:@RestController

    18行应改为:MultipartFile

    36行应改为:IOException

     


    解析:

    301、以下程序为东软云医院系统的登录功能的控制层和dao层,请根据注释与代码逻辑,找出其中5处错误或者不当之处。
    1 @RestController
    2    public class UserController {
    3    
    4        @Autowired
    5        UserService userService;
    6    
    7        @RequestMethod("/login")   //请求映射URL
    8        public String getUserLogin(String userName,String password,HttpSession session,Model model) {
    9                Map<Object,Object> map = new HashMap<Object, Object>();
    10            map.put("userName", userName);
    11            map.put("password", password);
    12            UserInfo user = userService.getUserLogin(map);
    13            if(user!=null) {
    14                session.addAttribute("user", user);    //若是登录成功,将user数据添加到session作用域中
    15                return "nav/main";
    16            }else {
    17                model.addAttribute("userName", userName);
    18                model.addAttribute("password", password);
    19                model.addAttribute("msg", "用户名或者密码错误");
    20                return "login";
    21            }        
    22     }
    23 }
    24    //接口
    25    @Service
    26    public interface UserInfoMapper {
    27           public UserInfo getUserLogin(Map<Object,Object> map);   //登录  
    28    }
    29    //映射文件
    30    <mapper namespace="com.neusoft.demo.mapper.UserInfoMapper" >
    31         <select id="getUserLogin" parameterType="String,String" resultType="userinfo" >
    32              select * from userinfo where userName=#{userName} and password=#{password}
    33         </select>
    34    </mapper>


    答题方式举例:第XX行有错误,应该改为XX

    答案:

    1.第1行有错误,应 @Controller
    2.第7行有错误,应改为 @RequestMapping("/login")
    3.第14行有错误,应改为 session.setAttribute("user", user);
    4.第25行有错误,应改为 @Mapper
    5.第31行有错误,应改为 parameterType="map"

    每找出一个错误并且改正2分


    解析:

    302、在SpringMVC中,客户端发起注册请求,若添加成功服务端响应在页面中显示字符串“用户添加成功”,若失败在页面中显示字符串“用户添加失败”。请写出用户注册功能控制层代码。

    答案:

    @Controller     
    public class UserController {
        
        @Autowired   

        IUserDao userDao;
      
        @RequestMapping("/adduser")    

        public String addUser(Model model,UserInfo user) {    

            int result = userDao.addUser(user);      

            if(result>0) {      

                model.addAttribute("msg", "添加成功");   

            }else {
                model.addAttribute("msg", "添加失败") ;                   

            }
            return "user_add";
        }

    }


    解析:

    303、使用MyBatis+SpringBoot编写用户登录程序

     

    数据库表:person

     

    字段:

    id 主键 int 自增长

    username varchar 50

    userpwd varchar 50

     

    与数据库映射Person类

    package com.example.domain;

    public class Person implements Serializable{

    private Integer id;

    private String username;

    private String userpwd;

    省略相关的get set方法....

     

    相关执行的sql语句已经在 映射文件中编写完毕

     

    1)- 操作数据库的Mapper接口PersonMapper,放置到到包:com.example.mapper中,

    用户登录验证方法名为 personLogin,返回值是查询到的Person数据,需要传入一个Person对象进行校验

     

    2)- 与Person登录相关Service类 PersonService编写

     

    3)- 处理请求的Controller:PersonController编写

     

    答案:

    1)- 操作数据库的Mapper接口PersonMapper,放置到到包:com.example.mapper中,

    用户登录验证方法名为 personLogin,返回值是查询到的Person数据,需要传入一个Person对象进行校验

     

    @Mapper(

    public interface PersonMapper {

    public Person personLogin(Person person);(

    }

     

     

    2)- 与Person登录相关Service类 PersonService编写

     

    @Service

    public class PersonService {

    @Autowired

    PersonMapper personMapper;

    public Person personLogin(Person person) {

    Person p = null;

    p = this.personMapper.personLogin(person);

    return p;

    }

    }

     

    3)- 处理请求的Controller:PersonController编写

     

    @RestController

    public class PersonController {

    @Autowired

    PersonService personService;

    @RequestMapping("/personLogin")

    public Object personLogin(Person person) {

    Person p = personService.personLogin(person);

    return p; 

    }

     

    }

     

     

    只要能够实现效果即可,可以选用多种不同方式实现。

     

    304、SpringBoot中关于Tomcat的配置,Tomcat特有配置都以_________________________作为前缀。

    答案:

    server.tomcat

    305、SpringBoot中自动配置静态资源,把类路径下的 /META-INF/resources、/public、/resources、___________________ 文件夹下的静态文件直接映射为/**,可以直接通过http://localhost:8080/**访问。

    答案:

    /static

    306、日期类型转换可以使用___________________________注解在实体字段上,可以灵活的定义接收的类型。

    答案:

    @DateTimeFormat(pattern=“yyyy-MM-dd”)

    307、在SpringBoot中,如果Spring的配置内容很多,不需要将所有的配置放进一个单独配置类中,可以使用_______________注解导入其他配置类。

    答案:

    @Import

    308、SpringBoot项目使用一个全局的配置文件可以是application.yml,也可以是____________________________。

    答案:

    application.properties

    309、SpringMVC组件包括前端控制器、处理器映射器、处理器适配器、______________________、视图。

    答案:

    视图解析器

    310、MyBatis 框架默认支持一级缓存,二级缓存需要在mapper.xml文件中配置。

    答案: 正确

    311、关于延迟加载,在MyBatis中默认没有开启延迟加载,需要在MyBatis配置文件中配置。

    答案: 正确

    312、在MyBatis中一对多关联查询,在映射文件中可以使用标签<association>。

    答案: 错误

    313、MyBatis的xml映射文件中,不同的xml映射文件若是配置了namespace,id是可以重复的。

    答案: 正确

    314、对用户user表进行分页查询,每页显示10条数据,查询出第5页数据的SQL语句是 “select * from user limit 30,10” 。

    答案: 错误

    315、通过Spring容器获取一个类的实现的Spring容器接口是。(    )

    A、 Context

    B、 ApplicationContext 

    C、 Application 

    D、 Session 

    答案: B

    316、声明业务逻辑层类的注解是。(    )

    A、 @Service

    B、 @Controller

    C、 @Mapper

    D、 @Resource

    答案: A
    解析:

    317、以下哪个不是Spring的依赖注入方式。(    )

    A、 setter

    B、 getter

    C、 构造函数注入

    D、 接口注入

    答案: B

    318、下列不属于SpringAOP中通知类型的是。(    )

    A、 代理通知

    B、 环绕通知

    C、 前置通知

    D、 后置通知

    答案: A

    319、MyBatis中插入功能中返回插入主键ID用的标签是。(    )

    A、 order

    B、 group

    C、 insert

    D、 selectKey

    答案: D

  • 相关阅读:
    mysql 历史版本下载
    mysql 5.7 版本 You must reset your password using ALTER USER statement before executing this statement报错处理
    5.7 zip 版本的安装 以及遇到的坑
    mysql 5.6zip版本的卸载与5.7 zip 版本的安装
    mysql数据库的备份与还原
    本地Navicat连接docker里的mysql
    docker修改数据库密码
    docker 在push镜像到本地registry出现的500 Internal Server Error
    linux 没有界面内容显示不全解决办法
    json与map互相转换
  • 原文地址:https://www.cnblogs.com/Carits/p/13202475.html
Copyright © 2011-2022 走看看