配色: 字号:
mybatis和jdbc区别
2018-01-07 | 阅:  转:  |  分享 
  
3.1.4、数据源数据源(DataSource)顾名思义,数据的来源,是提供某种所需要数据的器件或原始媒体。在数据源中存储了所有建立数据库
连接的信息。就像通过指定文件名称可以在文件系统中找到文件一样,通过提供正确的数据源名称,你可以找到相应的数据库连接。不管采用何种持
久化技术,都需要定义数据源。Spring中提供了4种不同形式的数据源配置方式:spring自带的数据源(DriverManager
DataSource),DBCP数据源,C3P0数据源,JNDI数据源。3.2.1、工作原理1、客户端发出一个http请求给web
服务器,web服务器对http请求进行解析,如果匹配前端控制器(或分发器/DispatcherServlet)的请求映射路径,we
b容器将请求转交给DispatcherServlet.2、DipatcherServlet接收到这个请求之后将根据请求的信息以及处
理器映射器(HandlerMapping)的配置找到处理请求的处理器(Handler)。3、由具体的处理器适配器(HandlerA
dapter)对Handler进行具体的调用。4、Handler对数据处理完成以后将返回一个ModelAndView()对象给Di
spatcherServlet。5、DispatcherSevlet通过视图解析器(ViewResolver)将ModelAndV
iew()转化为真正的视图View。6、Dispatcher通过model解析出ModelAndView()中的参数进行解析最终展
现出完整的view并返回给客户端。3.2.2、springmvc容器与Spring容器的区别Spring会创建一个WebAppli
cationContext上下文,称为容器,保存在ServletContext中,key是WebApplicationCon
text.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE的值。可以使用Spring提供的工具类取出上
下文对象:WebApplicationContextUtils.getWebApplicationContext(ServletC
ontext);DispatcherServlet是一个Servlet,可以同时配置多个,每个DispatcherServle
t有一个自己的上下文对象(SevletWebApplicationContext),称为子上下文(子容器),子上下文可以访问父上下
文中的内容,但父上下文不能访问子上下文中的内容。它也保存在ServletContext中,key是"org.springfr
amework.web.servlet.FrameworkServlet.CONTEXT"+Servlet名称。当一个Reque
st对象产生时,会把这个子上下文对象(SevletWebApplicationContext)保存在Request对象中,key是
DispatcherServlet.class.getName()+".CONTEXT"。可以使用工具类取出上下文对象:Re
questContextUtils.getWebApplicationContext(request);说明:Spring并
没有限制我们,必须使用父子上下文。我们可以自己决定如何使用。父上下文容器中保存数据源、服务层、DAO层、事务的Bean。子上下文
容器中保存MVC相关的Action的Bean。事务控制在服务层。由于父上下文容器不能访问子上下文容器中内容,事务的Bean在父上下
文容器中,无法访问子上下文容器中内容,就无法对子上下文容器中Action进行AOP(事务)。3.3.1、mybatis和jdbc区
别?MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的
手工设置以及对结果集的检索封装。1.优化获取和释放一般在访问数据库时都是通过数据库连接池来操作数据库,耦合性比较高,我们可以通过
DataSource进行隔离解耦,我们统一从DataSource里面获取数据库连接。2.SQL统一管理,对数据库进行存取操作使用J
DBC对数据库进行操作时,SQL查询语句分布在各个Java类中,可读性差,不利于维护,修改Java类中的SQL语句时要重新进行编译
。Mybatis可以把SQL语句放在配置文件中统一进行管理,以后修改配置文件,也不需要重新就行编译部署。3.生成动态SQL语句在查
询中可能需要根据一些属性进行组合查询,如果使用JDBC进行查询,这样就需要写多条SQL语句,而Mybatis可以在配置文件中通过使
标签进行SQL语句的拼接,生成动态SQL语句4.能够对结果集进行映射在使用JDBC进行查询时,返回一个结果集ResultSet,我们要从结果集中取出结果封装为需要的类型,而在Mybatis中我们可以设置将结果直接映射为自己需要的类型
献花(0)
+1
(本文系金银宝100首藏)