技术分享
Web服务后台开发框架升级
从SpringMVC+Hibernate到
SpringBoot+Mybatis
李兵
2018-10-23
1
目录
• SpringBoot框架介绍
• Mybatis框架介绍
• SpringBoot项目范例一:创建启动SpringBoot项目
• SpringBoot项目范例二:web项目以及增删改查
• MyBatis难点一:动态SQL
• MyBatis难点二:1:n实体级联关系操作
2
SpringBoot框架介绍
• 官网:https://spring.io/projects/spring-boot#overview,最新版本
2.0.6
• 概念
• Pivotal团队开发,属于Spring旗下一个项目,设计目的是“零配置”简化
Spring应用的搭建及开发过程。使用“习惯优于配置”的理念。
• 特点
• 可以创建独立的Spring 应用
• 内嵌tomcat,Jetty或Unertow容器,执行主程序main函数快速运行项目,
方便开发调试。
3
SpringBoot框架介绍
• 特点【续】
• Maven配置简单:提供很多start 简化maven依赖加载,一般配置一个
parent依赖控制springboot的版本。然后再通过spring-boot-start-*依赖来
引入和关联各种应用包,比如:spring-boot-start-web,spring-boot-
starter-jdbc,mybatis-spring-boot-starter,spring-boot-starter-quartz等。
• 尽可能的自动配置Spring和第三方类库,解决依赖关系。
• 提供生产就绪型功能,如指标,健康检查和外部配置。
• 微服务基础
• 微服务框架SpringCloud以SpringBoot为基础,实现服务发现注册、配置中
心、消息总线、负载均衡、断路器、数据监控等一键启动和部署。
4
MyBatis框架介绍
• 概述
• https://github.com/mybatis/mybatis-3 最新版mybatis-3.4.6
• MyBatis本是apache的一个开源项目iBatis,2010年由apache software
foundation迁移到google code,并改名为MyBatis,2013年11月迁移到
Github。
• MyBatis是一款优秀的持久化框架,支持定制化SQL、存储过程及高级映
射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。
使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs映
射成数据库中的记录。
5
MyBatis框架介绍
• 特性
• 对比
• 简单易学且灵活,MyBatis专注于SQL本身,而Hibernate需要学习HQL。
• SQL可以写在xml里,从程序代码中彻底分离,降低耦合度。
• 动态sql:根据不同条件拼接SQL语句,例如拼接时确保不能忘记必要空
格,去掉最后一个列名后的逗号。xml标签包括:if, choose, when, trim,
where, set, foreach等。
• 提供映射标签,支持对象与数据库的orm字段关系映射。
• 对性能要求很高,如互联网项目,MyBatis市场占比大。
• Hibernate面向对象,使用HQL,无需写SQL,全自动ORM。
• Mybatis面向对象,使用SQL语句,半自动ORM。
6
SpringBoot项目范例一
• 环境依赖: jdk1.8以上
• 开发工具: https://spring.io/tools
• 本文档中使用STS工具创建一个简单的范例项目
7
SpringBoot项目范例一
• 创建项目以及项目目录结构图
8