SSM框架学习记录6——框架及事务流程总结

SSM知识点总结

1.mybatis连接数据库

mybatis提供了mapper接口开发规范,较与原始的dao开发方式更加方便,只要遵循一定的规范,

mybatis的功能有连接数据库,jdbc事务管理,加载mapper映射文件,定义别名

mybatis操作数据时,需要先创建会话工厂,再通过工厂创建session,通过session调用mapper进行数据库操作。

复杂查询的实现1.自定义pojo,返回值resultType的值为pojo的类路径
			  2.使用ResultMap,使用关联查询:一对多:collection,一对一:association,进行映射。
		
resultMap可以实现延迟加载,就是嵌套的sql语句,

mybatis提供了查询缓存,session级别的一级缓存,namespace命名空间为二级缓存。使用hashMap<>存储

mybatis提供了分布式缓存的接口,redis,ehchache

2.mybatis整合spring:

mybatis整合spring后,数据库的连接,mapper包的扫描,事务管理都交由spring接管。

查询数据库时不需要手动创建会话工厂,只要mapper继承SqlSessionDaoSurport就可以直接调用session进行数据库操作

3.springMVC:

springmvc的三层架构:model view controller 需要配置适配器,映射器,视图解析器

springMvc系统的运行流程:客户端发出请求,前端控制dispacher拦截请求,解析器解析url,找到对应的controller类
	处理请求,返回model,视图解析器将model解析成视图view,并显示。
	
基于注解的mvc:需要配置组件扫描,扫描controller包,不需要配置适配器和映射器。在controller类上添加@Controller
	在其方法上添加@RequestMaping

4.mybatis整合spring整合springMvc

spring:dao层:配置数据库的连接,会话工厂的配置,mapper的扫描,
		service层:事务控制:配置增强和配置切面
		mvc层:映射器,适配器,视图解析器
		
web文件配置拦截器和加载spring容器。

5.SSM框架的功能

重定向:redirect,A->B:A->C 
		forword, A->B:B->C
		
绑定器:例,修改数据的类型,自动将出入的字符串转换为日期类型

拦截器:拦截请求,对请求进行处理。

ajax异步交互:不更新页面,进行响应请求。

参数校验:在组件扫描中配置参数校验,创建参数校验的接口类,进行校验分组

参数绑定:将客户端请求的key/value绑定到controller的形参上
	HTTPServletRequest HttpServletResponse HttpSession model四种类型会自动绑定
	参数绑定还支持简单类型int long String等
	传入的其他类型参数需要使用注解@RequestParam 或者 与controoler的参数名一致。
	
数据回显:数据提交出错后,将出错的数据回显到刚提交的页面上。
	spring默认实现对pojo类型的回显
	注解方式的回显@ModelAtribute("items"),指定回显到页面中的key

事务调用流程总结:

1.Mybatis框架下的事务调用流程:

1.加载resource
String resource = “Mybatis的配置文件”

2.读取配置文件的内容
	InputStream inputStream = Resource.getResourceAsStream(resource);
	将文件以字节流的方式读入到内存。

3.通过配置构建会话工厂
	SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
	使用工厂的构造方法创建会话工厂
	
4.通过会话工厂创建会话Session
	SqlSession sqlSession = sqlSessionFactory.openSession()
	使用工厂开启会话

5.通过会话来获取Mapper对象
	Mapper mapper = sqlSession.getMapper(Mapper.class)
	使用session来获取mapper实例

6.使用Mapper对象的方法对数据库进行操作
	mapper.findList();
	使用mapper实例对数据库进行操作

Mybatis框架总结,Mybatis框架没有提供对会话,和mapper进行操作的方法,是实现,较为复杂。
其中只进行一次的操作可以放在类中,方法外,只需创建一次的对象可以放在前置类中。

2.Mybatis整合Spring框架后:

1.获取spring的配置文件,也就是spring容器
	private ApplicationContext applicationContext;
	applicationContext = new ClassPathXmlApplicationContext("spring的配置文件的目录")
	
	spring提供了Spring容器,对,sessionFactory,session,bean进行管理,
	只需要调用apring容器,就可以使用其中的实例,进行操作,在spring容器创建时,
	其中的bean就会被实例化。

2.通过spring容器来获取其中的bean对象
	Dao dao = (Dao)applicationContext.getBean("Bean的id")

3.调用bean的方法对数据库进行操作
	dao.findUser()

spring框架总结,提供了spring容器,对bean进行实例化处理,简化了开发。

3.Mybatis整合Spring的注解开发

1.在类中初始化所要调用的对象,并加上注解@Autowired
	private Service service
2.调用此实例对数据库进行操作
	service.findItemsList();

---------------------------------------------------------------------------------------------------------------------

总结

  • spring框架的注解开发,减少了手动初始化spring容器这一步,
    程序运行时,就会加载spring容器,并实例化其中的bean一次,
    由于spring容器和springmvc都是单例,bean对象只实例化一次,之后都是对bean的调用。
    所以是单例。
  • ssh是多例,由于ssh框架中spring框架和ssm框架中一样只初始化一次,所以dao和service
    都是单例,而action是有struts2管理,当有多少个请求进入,就会创建多少个action
    所以ssh框架是多例。
    SSM是单例,SSH是多例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值