大家好,感谢邀请,今天来为大家分享一下spring整合mybatis原理的问题,以及和@SpringBootApplication的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
springmvc和mybatis整合可不可以不需要spring
首先回答你的问题,肯定是不可以的。提这个问题可能是你对Spring和SpringMVC本身理解不够。下面我简单介绍一下Spring。
Spring:我们一般单说Spring是指的SpringFrameworkzh.wikipedia.org
是一个开源的全栈的开发框架,Spring提供一个功能强大的Spring容器。核心是AOP和IOC。
SpringMVC要说SpringMVC前,先说一下什么是MVC。
MVC是一种使用MVC(ModelViewController模型-视图-控制器)设计创建Web应用程序的模式。可以看到只有是这样三层结构设计的都是MVC框架。较老的SSH中的Struts就是一个MVC框架。随着Spring的发展,Spring本身也有了自己的MVC实现,也就是SpringMVC。而且慢慢取代了Struts。
SpringBoot因为Spring项目的配置复杂等问题,为了简化开发者的使用,从而创造性地推出了SpringBoot。约定优于配置,简化了spring的配置流程。SpringBoot里面有大量的第三方启动包,可以快速搭建项目,可以简单理解是一个Spring项目的脚手架,懒人包。
SpringCloud有了SpringBoot已经可以快速搭建一个服务。但是随着微服务的兴起,服务越来越多。服务的治理成了最主要的问题,SpringCloud就应运而生。
SpringCloud基于SpringBoot,为微服务体系开发中的架构问题,提供了一整完套的解决方案,包括:服务注册与发现,服务消费,服务保护与熔断,网关,分布式调用追踪,分布式配置管理等。
最后官网学习最靠谱,自己可以加深一下理解。
spring中为什么是通过连接获取操作数据库的对象
数据库作为一个提供了强大的关系型持久存储和查找的数据模型,通常操作数据库需要使用专门的结构化语言(SQL)进行操作,而连接不同的数据库(oracle,mysql,sqlserver等)所需要注册的驱动都不同,导致其他语言连接数据库存在困难!
而JAVA中抽象了一组连接数据库的接口和类,jdbc(JAVAdatabaseconnectivity)专门为不同的数据库提供统一的标准进行连接,可以说无论连接数据库的框架怎么封装,底层都是使用的javajdbc!
下面看下jdbc连接数据库的步骤:
①,注册驱动:不同的数据库提供商会提供不同的驱动类进行注册使用,通常使用JNDI反射的方式进行,eg:Class.forName("com.mysql.jdbc.Driver");
②,创建连接:包括数据库连接地址,库,用户名和密码用于连接数据库服务并进行认证,eg:Connectionconnection=DriverManager.getConnection(x,x,x);
③,执行SQL:创建statement对象,获取执行sql的实例,调用SQL的执行方法!eg:Statements=connnection.createStatement();s.excuteQuery("select*front");
④,组装结果:statement中执行方法会得到相应的返回值,使用resultSet进行接受后处理数据!eg:ResultSetr=s.excuteQuery();
Stringname=r.getString("name");
⑤,关闭连接:至关重要的一步,因为像oracle就是根据连接时间进行收费的,如果一直开着连接,破产指日可待!connection.close();
上面提到了,任何其他的JAVA框架(mybatis,hibenate,springTemplate等)基本都是封装了原生的jdbc进行操作数据库,所以免不了上诉几个步骤!
我们看到,对于数据库驱动注册,连接开启和关闭这些与业务无关的东西其实并不是开发者关心的,所以进一步的封装很有必要!
spring是怎么进行封装的呢?
1,封装驱动注册和连接:spring通过dbcp等数据源实现包,只需要配置数据库驱动信息,连接信息等就可以实现自动注册和连接数据库,并通过配置destroy-method=true就可以在自动关闭连接!
2,提供jdbcTemplate更为丰富的API,实现更加简便的开发流程,包括增删改查,batch处理等!
如下面代码所示:
jdbcTemplate.queryForInt("selectcount(*)fromtest");//2.查询一行数据并将该行数据转换为Map返回jdbcTemplate.queryForMap("select*fromtestwherename='name5'");//3.查询一行任何类型的数据,最后一个参数指定返回结果类型jdbcTemplate.queryForObject("selectcount(*)fromtest",Integer.class);//4.查询一批数据,默认将每行数据转换为MapjdbcTemplate.queryForList("select可以说springTemplate的封装十分轻量级,可以用于替代原生jdbc的开发,不过现在大多数企业都是用的mybatis,提供缓存,动态SQL,方便的映射的ORM框架,是值得学习的数据库操作框架,今天的分享就到这,更多的技术分享,敬请关注!!
Java开发大型互联网-Spring Boot如何集成MyBatis
使用Maven添加相关的jar包后再进行相关的xml文件配置即可。
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!