1.mybatis和spring整合的思路
1.让spring管理SqlSessionFactory
2.让spring管理mapper对象和dao
使用spring和mybatis整合开发mapper代理及原始dao接口。
自动开启事务,自动管理sqlsession
Life is short,just coding.
1.让spring管理SqlSessionFactory
2.让spring管理mapper对象和dao
使用spring和mybatis整合开发mapper代理及原始dao接口。
自动开启事务,自动管理sqlsession
当客户端向服务器发出请求时,服务器把得到的请求发送给控制器Servlet,而在Servlet中需要创建Service对象来调用业务层相关功能(故说控制器层Servlet依赖于业务层Service),而在Service中又需要创建数据库层DAO对象来对数据库进行操作(故说业务层Service依赖于数据库层DAO)。
正如大多数持久层框架一样,MyBatis同样也提供了对查询数据的缓存支持。今后我们要学习的SpringMVC框架属于系统控制层,它也有它的缓存区域,对响应的jsp页面进行缓存;Spring属于系统业务层,它的缓存区域对业务数据进行缓存。而它们三者的缓存区域都存在于用户要访问数据库的中间,当用户向数据库中发送查询请求时,系统会先在它们三者的缓存区域看是否有满足用户要求的查询数据,若有则直接从缓存区域返回信息;若没有则从数据库中进行查询。
对于数据库中对表的增删改查操作,我们知道增删改都涉及的是单表,而只有查询操作既可以设计到单表操作又可以涉及到多表操作,所以对于输入映射parameterType而言是没有所谓的高级映射的,也就是说高级映射只针对于输出映射(因为高级映射设计到多张表)。
我们需要知道的是,使用mybatis重点是对sql的灵活解析和处理。在原先的UserMappser.xml中,我们这样查询表中满足条件的记录 :
在MyBatis中,我们通过parameterType完成输入映射(指将值映射到sql语句的占位符中,值的类型与dao层响应方法的参数类型一致),通过resultType完成输出映射(从数据库中输出,通过dao层的方法查询到的数据输出到pojo对象中)。
MyBatis配置文件很重要,首先我们来看看MyBatis配置文件中的内容和顺序:
1.SqlSessionFactoryBuilder
SqlSessionFactoryBuilder是以工具类的方式来使用:需要创建sqlSessionFactory时就new一个 SqlSessionFactoryBuilder
首先我要明确告诉大家的是MyBatis是一个java持久层框架,以前我们都是用jdbc来将我们的java程序与数据库相连接,而MyBatis是对jdbc的一个封装。
对于JavaWeb中的上传与下载,别说你从没遇到过。
当我们要向网站中上传文件或者需要从网站上下载文件时,其实我们就已经玩了一遍上传与下载了。那么我们上传的文件会保存在服务器的哪里呢?下载的文件又是从服务器的哪里传过来的?这些又是怎么实现的呢?