springboot应用mybatis以xml形式实现连接操作mysql教程

这里介绍一下springboot实现数据库连接,以及在这个过程中发现的问题和思考,现在总结一下。如果想直接看springboot应用mybatis实现连接mysql可直接看第3部分

1SSM与SSH与JPA的选择

在springboot配合那种ORM框架时,我最终选择了mybatis,顺便学习了一下SSH与SSM和JPA(Java Persistence API)。
SSH和SSM定义
SSH 通常指的是 Struts2 做控制器(controller),spring 管理各层的组件,hibernate 负责持久化层。
SSM 则指的是 SpringMVC 做控制器(controller),Spring 管理各层的组件,MyBatis 负责持久化层。
共同点:1.Spring依赖注入DI来管理各层的组件。2.使用面向切面编程AOP管理事物、日志、权限等。
不同点:1.Struts2 和 SpringMVC 控制器(controller)控制视图和模型的交互机制的不同,
Struts2是Action类级别,SpringMVC是方法级别,更容易实现RESTful风格。
Hibernate 和 MyBatis 两种ORM框架对比
相同:
1.Hibernate与MyBatis都是可以通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory生成Session,最后由Session来开启事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session 的生命周期都差不多
2.Hibernate和MyBatis都支持JDBC和JTA事务处理

不同:
1.MyBatis可以进行更为细致的SQL优化,可以减少查询字段
2.MyBatis容易掌握,而Hibernate门槛较高
3.Hibernate的Dao层开发比MyBatis简单,MyBatis需要维护SQL和结果映射
4.Hibernate对 对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便
5.Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同的SQL
6.Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳,更新操作不能指定刷新指定记录,会清空整个表,但是也可以使用第三方缓存
7.Hibernate 封装性好 屏蔽了数据库差异,自动生成SQL语句。应对数据库变化能力较弱,SQL语句优化困难
8.MyBatis仅实现了SQL语句和对象的映射,需要针对的数据库写SQL语句,应对数据库变化能力较强,SQL语句优化比较方便

总结:SSM和SSH不同主要在MVC实现方式,以及ORM持久化方面不同(Hiibernate与Mybatis)
SSM越来越轻量级配置,将注解开发发挥到极致,且ORM实现更加灵活,SQL优化更简便;
SSH较注重配置开发,其中的Hiibernate对JDBC的完整封装更面向对象,对增删改查的数据维护更自动化,但SQL优化方面较弱,且入门门槛稍高。

SSM与SSH具体介绍链接:
在网上的一些springboot实现数据库连接教程demo使用jpa,jpa类似于hibernate,jpa可以不用写具体的sql,编写的文件较少,但是springboot修改sql可能需要修改代码重新打包,而mybatis可以通过修改配置文件完成sql修改,因此灵活度较高。目前大多数项目还是应用mybatis。
JPA是一种规范,仅仅定义了一些接口,hibernate是实现了JPA接口的ORM框架,Spring data jpa也是实现了JPA接口的简化ORM框架,它的底层使用的 Hibernate 的 JPA 技术实现。
在这里插入图片描述
在这里插入图片描述
JPA,hibernate,spring data jpa介绍链接

2mybatis的注解实现和xml实现选择

mybatis的实现方式包括注解实现和xml实现两种方式
注解开发
优势:开发简单,快速,使用注解类似于使用spring data jpa
劣势:维护起来比较难,修改sql会涉及程序修改,需要重新打包
xml实现:
优势:修改sql只需要修改配置文件,便于维护
劣势:开发量比较大,涉及的文件多

3 重点:springboot应用mybatis实现操作mysql

项目结构如下
在这里插入图片描述
项目主要包括controller层,service层(impl,service接口) ,dao层(entity,mapper)以及resource下的UserMapper.xml文件

pom文件需要添加的依赖

        <!--mysql 依赖 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--lombok 依赖 -->
        <dependency>
            <groupId>org.projectlombok
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值