在mybatis跟spring集成的时候,为啥还要导入spring-jdbc的包呢,这里面不是
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在mybatis跟spring集成的时候,为啥还要导入spring-jdbc的包呢,这里面不是相关的知识,希望对你有一定的参考价值。
在mybatis跟spring集成的时候,为什么还要导入spring-jdbc的包呢,这里面不是没有springjdbc的事吗,希望大神给我力量
mybatis跟spring集成的时候
在spring的配置文件中使用了SqlSessionFactoryBean这个类
接着去看SqlSessionFactoryBean的源码
因为使用了org.springframework.jdbc.datasource这个包下的类
所以要加spring-jdbc这个依赖
参考技术A 使用SSM(Spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些。以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下。这次,先说说三大框架整合过程。个人认为使用框架并不是很难,关键要理解其思想,这对于我们提高编程水平很有帮助。不过,如果用都不会,谈思想就变成纸上谈兵了!!!先技术,再思想。实践出真知。(可通过图片水印查看博客地址)1、基本概念
1.1、Spring
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
1.2、SpringMVC
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
1.3、MyBatis
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
2、开发环境搭建
如果需要,参看之前的博文:http://blog.csdn.net/zhshulin/article/details/30779873
3、Maven Web项目创建
如果需要,参看之前的博文:http://blog.csdn.net/zhshulin/article/details/37921705
4、SSM整合
下面主要介绍三大框架的整合,至于环境的搭建以及项目的创建,参看上面的博文。这次整合我分了2个配置文件,分别是spring-mybatis.xml,包含spring和mybatis的配置文件,还有个是spring-mvc的配置文件,此外有2个资源文件:jdbc.propertis和log4j.properties。追问
答非所问 误人子弟,你好好看看我的问题,看都没看清楚,就给我复制这么一大坨
参考技术B mybatis用到了spring_jdbc的一些apispring boot 集成 Mybatis,JPA
相对应MyBatis, JPA可能大家会比较陌生,它并不是一个框架,而是一组规范,其使用跟Hibernate 差不多,原理层面的东西就不多讲了,主要的是应用。 Mybatis就不多说了,SSM这三个框架现在基本上都是基本框架了。 MyBatis 与 Spring boot 整合时除了添加必要的jar, 插件。在applicatoin.properties/application.yml 中添加相应的配置。
注意的一点就是在启动类中记得添加@MapperScan("com.spSystem.mapper") 注解,注解中填写的是需要扫描的mapper 文件路径。其余与SSM 运用时差不多
阅读此篇博客请先去阅读本人的spring boot 常用注解,JPA常用注解。spring boot 项目要部署到 linux上tomcat 中 请去阅读本人的spring boot tomcat 部署
当导入相应jar包的maven依赖时要注意其相对应版本(例如:spring boot 与 <java.version></java.version>中对应的版本)
依赖中的jar何时使用
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> #provided表明该包只在编译和测试的时候用 <scope>provided</scope> </dependency>
application.properties:
application.yml:
application.properties其中的mybatis相关配置:
mybatis.typeAliasesPackage=com.spSystem.model # pojo 存放的路径 mybatis.mapperLocations=classpath\\:mapper/*.xml # mapper.xml存放的路径(相当于resource来说) server.port=8088 # 项目的端口 # DataSource 相关配置 spring.datasource.url=jdbc:mysql://localhost:3306/123?useUnicode=true&characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=123 spring.datasource.driver-class-name=com.mysql.jdbc.Driver
启动类:也就是普通类加上springboot注解,其中写个main 方法。启动的时候通过main 方法启动程序就行了
spring boot 集成JPA: 其余都相差不多,pojo 需要根据JPA常用注解自己写。
/*注解用于提交事务,若没有带上这句,会报事务异常提示*/ @Transactional /*自动清除实体里保存的数据*/ @Modifying(clearAutomatically = true) /*JPA 集成中的SQL 没有的就需要自己写原生SQL*/ @Query(value = "update info p set p.status =?1 where p.id = ?2",nativeQuery = true) int updateStatusById( String status, String id);
以上是关于在mybatis跟spring集成的时候,为啥还要导入spring-jdbc的包呢,这里面不是的主要内容,如果未能解决你的问题,请参考以下文章
Spring集成MyBatis的使用-使用SqlSessionTemplate
springboot集成了mybatis为啥控制台不显示sql语句