- jdbc问题:
- 数据库连接创建、释放频繁造成系统资源浪费,从而影响系统性能。如果使用数据库连接池可解决此问题。
- Sql语句在代码中硬编码,造成代码不易维护,实际应用中sql变化的可能较大,sql变动需要改变java代码。
- 使用preparedStatement向占有位符号传参数存在硬编码,因为sql语句的where条件不一定,可能多也可能少,修改sql还要修改代码,系统不易维护。
- 对结果集解析存在硬编码(查询列名),sql变化导致解析代码变化,系统不易维护,如果能将数据库记录封装成pojo对象解析比较方便。
?mybatis介绍:
-
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 ? MyBatis是一个优秀的持久层ORM框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。 Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并 -
什么是框架 - 框架(Framework)是一个框子:指其约束性。也是一个架子:指其支撑性;
- 程序中的框架,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体问题扩展、安插更多的组成部分,从而更迅速和方便地构建完整的解决问题的方案;
- 程序中的框架其实是一系列jar包(一系列.class文件)的组合;
- 框架是一个半成品,并没有解决具体的问题,但是有了框架之后,不需要从零起步,提高了开发效率;
- 框架通常是为了解决某一个领域的问题而产生;
- 适用于团队开发,统一规范,方便维护;
?什么叫数据库持久化
- 数据持久化就是将内存中的数据模型转换为存储模型,即把内存中的数据保存到数据库中;
- 常见的数据持久化分为磁盘持久化和数据库持久化;
- Java中最简单的就是使用原生的jdbc代码来完成数据库持久化,但是这种方式有很多问题;
?什么是ORM
ORM:对象关系映射(Object Relational Mapping,简称ORM):是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术;
ORM框架映射方式
ORM框架操作数据库关系方式有很多种,常用的有两种:
第一种:Sql操作方式(半映射或半自动):把SQL配置到配置文件中,通过不同SQL中完成对象实体和数据库关系相互转换的操作(Mybatis的实现方式)
第二种:完整映射:直接使用对象实体和数据库关系进行映射,不用写SQL(简单的操作),由框架自己生成(JPA、Hibenate实现方式)
ORM原理
- 以一定的映射方式,把实体模型和数据库关系进行映射;
- ORM框架启动时加载这些映射和数据库配置文件连接数据库;
- ORM通过对最原生jdbc的封装,并提供更加便利的操作API;
- Dao通过ORM提供的便捷API以对象的方式操作数据库关系;
常见的ORM持久化框架
- JPA:本身是一种ORM规范,不是ORM框架,由各大ORM框架提供实现;
- Hibernate(完整映射):目前流行的ORM框架,设计灵巧,性能一般(自己去控制性能,不是很好控制),文档丰富。Hibernate是一个完整的ORM框架,常规CRUD我们不需要写一句SQL;
MyBatis(半映射):本是apache的一个开源项目iBatis,提供的持久层框架包括SQL Maps(Mapper)和Dao,允许开发人员直接编写SQL,更加灵活
?
?
|