SSM——20191204小测试总结

一、Mybatis中保存一条记录,返回主键有哪些要求?【10分】


保存一条记录,返回主键有两种方法:保存记录时获取主键、保存记录后获取主键

Ⅰ、在保存记录时能够返回主键的关键所在:SQL标签中添加三个属性。即,

①【useGeneratedKeys】的值————>必须设置为【true】,否则无法获得主键id,

可以在【mybatis-config.xml】中设置:


	

②【keyProperty】————>设置为POJO对象的主键id【属性名称

③【keyColumn】————>设置为数据库记录的主键id的【字段名称

Ⅱ、在保存记录之后获取主键,用到了【selectKey】标签


            select LAST_INSERT_ID()   
    或者    select @@identity

要求:

①【keyProperty】————>设置为POJO对象的主键id【属性名称

②【keyColumn】————>设置为数据库记录的主键id的【字段名称

③【resultType】————>设置为获取主键的SQL语句的返回值的【数据类型

④【order】——————>设置获取主键的SQL语句在保存记录之前【BEFORE】还是之后【AFTER】执行

SQL语句有两种:

# 查询最后一次添加的SQL语句中的主键的值
select LAST_INSERT_ID();
select @@identity

 

 

二、请写出使用Mybatis的Mapper代理的步骤;dao有啥要求?映射文件有什么要求?【10分】


mapper:相当于Java里面的类

namespace:相当于Java里面的包名

使用Mapper代理的要求:

————> namespace:必须是Dao接口的包名+类名

————> sql标签中的id:必须和dao接口中的方法名一样,唯一标识,id不能重复

————> parameterType:必须和dao接口方法中的形参类型一样

————> resultType:必须和dao接口方法中的返回值类型一样

——————> 如果查询的是单条,那么返回值类型就是resultType

——————> 如果查询的是多条,那么返回值的类型是List,List里面放的是resultType

 

Ⅰ、接口和Mapper文件必须在同一目录下

Ⅱ、mapper.xml中namespace指定为mapper接口的全限定名

Ⅲ、mapper.xml中statement的id就是mapper.java中方法名

Ⅳ、mapper.xml中statement的parameterType和mapper.java中方法输入参数类型一致

Ⅴ、mapper.xml中statement的resultType和mapper.java中方法返回值类型一致.

 

三、请写出Mybatis中映射文件的动态SQL语句常用的SQL标签有哪些?分别代表什么含义?【10分】  ——> 9分


where

if

when

otherwise

choose

set

sql

include

trim

foreach

test

 

四、Mybatis中实现一对多的关联关系的步骤有哪些?【10分】


Ⅰ、数据库两表关联字段

A表的主键列是B表的外键列,即,A表——>B表为一对多的关系

Ⅱ、映射文件中需要为两表的关联字段重新赋值



    



    

Ⅲ、Mapper文件需要在全局配置文件中配置,以便加载配置时知道Mapper文件的位置

 

五、Mybatis的分页有三种,分别是什么?【10分】——> 9分


Ⅰ、数组分页 ?

Ⅱ、SQL分页

mysql分页关键字 limit

postgresql分页关键字 offset

oracle 分页:三层rowNum 嵌套

分页必备的两个要素:总条数、每页多少条

SSM——20191204小测试总结_第1张图片

Ⅲ、拦截器+插件配置分页

①、在【mybatis.cfg.xml】文件中配置插件;【注意插件配置的顺序】



	
	
		
		
	

 ②、在映射文件中,配置SQL语句

插件:pageHelper:Page page = pageHelper.startPage(a,b);

总条数:page.getTotal();

总页数:page.getPageSize();

每页条数:page.getPages();

page.getPageNum();

③、PageHelper插件分页查询的测试类及运行结果 

SSM——20191204小测试总结_第2张图片PageHelper插件分页查询的测试类及运行结果

 

SSM——20191204小测试总结_第3张图片PageHelper插件分页查询的测试类及运行结果02

Ⅳ、RowBounds分页

Mybatis自带的RowBounds分页的测试类及运行结果如下:

SSM——20191204小测试总结_第4张图片

 

六、Spring中的IOC和DI分别代表什么含义,请解释一下?【10分】


IOC:【Inversion Of Controller】控制反转

将对象实例化的操作交给Spring IOC容器进行封装处理成一个个的Bean,通过反射的原理获得该对象

DI:【Dependency Injection】依赖注入

分为三大类:构造器赋值、读写器赋值、其他赋值。

构造器赋值:

①按照形参的下标索引值赋值
②按照形参的数据类型赋值
③按照形参的变量名赋值

读写器赋值:

①基本数据类型

②引用数据类型数组List集合Set集合 Map集properMap集

③自定义引用类型


	
		篮球
		足球
		羽毛球
	



    
	    篮球hobbyList
	    足球hobbyList
	    羽毛球hobbyList
    



	
		篮球hobbySet
		足球hobbySet
		羽毛球hobbySet
	

		
		


	
		
		
		
	



	
		篮球hobbyProperMap			
		足球hobbyProperMap
		羽毛球hobbyProperMap
	

	
    	
		
	



	
	
	


	
	
	

其他方法:

①、P
②、属性文件

 

 

七、Spring为指定的类常见的构造方法赋值有哪几种?推荐使用哪个?为什么?【10分】


Ⅰ、按照有参构造方法的形参的【下标索引值】进行赋值

缺点如果形参数量相同,数据类型不同,不知道指定下标的形参的数据类型是什么,数据类型则会不匹配。

Ⅱ、按照有参构造方法的形参的【数据类型】进行赋值

缺点如果数据类型相同的形参数量不唯一,不知道赋值给哪一个形参

Ⅲ、按照有参构造方法的形参的【名称】进行赋值 【推荐使用

优点因为属性名具有唯一性,所以按照属性名进行赋值,不易出错。

缺点如果形参的数量较多,(指定的类的属性过多),赋值代码繁而冗杂。

 

八、SpringAOP是什么意思?它都包含哪些概念,写的越多越好。【10分】——> 9分


SSM——20191204小测试总结_第5张图片

SSM——20191204小测试总结_第6张图片

 

 AOP:【Aspect Oriented Programming面向侧面编程

包含概念有:

Ⅰ、切面【Aspect】

Ⅱ、连接点【Join Point】

Ⅲ、通知【Advice】

Ⅳ、切入点【Pointcut】

Ⅴ、介绍【Introduction】

Ⅵ、目标对象【Target object】

Ⅶ、AOP代理【AOP proxy】

Ⅷ、织入【Weaving】

九、SpringMVC驱动赋值都有哪几类,分别是什么?【10分】——> 3分


基本数据类型

引用数据类型

自定义引用类型

 

十、请介绍一下代理模式?【10分】——> 3分


代理模式:可以实现委托类的要求

静态代理:维护性差,一个代理实现一个目标对象

动态代理:一个代理可以实现多个目标对象;写一个代理。谁用谁拿,返回对象即可。

 

你可能感兴趣的:(SSM)