• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

jdbc依赖在各个框架的意义和发展

武飞扬头像
壹晴天
帮助1

一、JDBC是规范(接口)不是实现(类)JDBC 是一种规范,由Sum公司它提供了一套完整的接口,由数据库厂商根据特点予以实现,因此只要学会接口的使用就可以轻松的用 JDBC编写适用于各种数据库的程序

传统JDBC操作:

  1. 使用JDBC编程需要连接数据库,注册驱动和数据库信息
  2. 操作Connection,打开Statement对象。
  3. 通过Statement执行SQL,返回结果到ResultSet对象。
  4. 使用ResultSet读取数据,然后通过代码转化为具体的POJO对象。
  5. 关闭数据库的相关资源。

传统jdbc存在的不足:

  1. 工作量相对较大,每次都要去创建,关闭,获取。代码重复较大
  2. 频繁的开启和关闭数据库连接,会严重影响数据库的性能,浪费数据库的资源;
  3. JDBC编程可能产生的异常进行捕捉处理并正确关闭资源

二、这时候就会出现一个持久层框架(对象-映射-关系型数据库)去解决问题,例如mybatis、hibernate。用于实现面向对象编程语言里不同类型系统的数据之间的转换。简单的说,ORM 是通过使用描述对象和数据库之间映射的元数据,将程序中的对象与关系数据库相互映射。ORM 是一种完全的面向对象的做法,而面向对象的做法也会对性能产生一定的影响。在我们开发系统时,一般都有性能问题。性能问题主要产生在算法不正确和与数据库不正确的使用上。ORM 所生成的代码一般不太可能写出很高效的算法,在数据库应用上更有可能会被误用,主要体现在对持久对象的提取和和数据的加工处理上,如果用上了 ORM,程序员很有可能将全部的数据提取到内存对象中,然后再进行过滤和加工处理,这样就容易产生性能问题。

mybatis

  1. 易于上手和掌握。
  2. sql写在xml里,便于统一管理和优化。
  3. 解除sql与程序代码的耦合。
  4. 提供映射标签,支持对象与数据库的orm字段关系映射
  5. 提供对象关系映射标签,支持对象关系组建维护
  6. 提供xml标签,支持编写动态sql。
    hibernate
  7. 消除了代码的映射规则,它全部被分离到XML或者注解里面去配置。
  8. 无需再管理数据库连接,它也配置到XML里面。
  9. 一个会话中,不要操作多个对象,只要操作Sesison即可。
  10. 关闭资源只需要关闭一个Session即可。

三、mysql-connector-java是什么?
mysql-connector-java 是MySQL提供的JDBC驱动包,用JDBC连接MySQL数据库时必须使用该jar包,它的主要用途有三个:

  1. 与数据库建立连接
  2. 发送 SQL 语句
  3. 处理结果

四、Mybatise和jdbc

  1. MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。
  2. MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。
  3. MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

五、mybatis-spring整合jar包功能(Spring与Mybatis整合)
在学习mybatis配置时,对于mybatis-config配置的时候我们发现,大致是需要配置三个方面:setting、datasource、mappers。而mybatis的setting往往使用默认配置,所以我们经常配置datasource数据源与mappers映射,但学习spring之后发现,对于datasource的配置交由spring进行管理,所以在spring与mybatis整合后mybatis的配置文件中将不需要配置datasource,mybatis的配置几乎都会在Spring配置之中完成。当然要想要实现spring与mybatis的整合,其中最重要的就是mybatis-spring.jar 包

  1. mybatis-spring会用于帮助你将 MyBatis 代码无缝地整合到 Spring 中。
  2. Spring 将会加载必要的 MyBatis 工厂类和 Session 类
  3. 提供一个简单的方式来注入 MyBatis 数据映射器和 SqlSession 到业务层的 bean 中。
  4. 它将允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中
  5. 将 Mybatis 的异常转换为 Spring 的 DataAccessException

六、Mapper代理(Mybatis)
1、 原始DAO开发中存在的问题:
a) DAO实现方法体中存在很多过程性代码。
b) 调用SqlSession的方法(select/insert/update)需要指定Statement的id,存在硬编码,不利于代码维护。
2、 Mapper动态代理方法:程序员只需要写dao接口(Mapper),而不需要写dao实现类,由mybatis根据dao接口和映射文件中statement的定义生成接口实现类代理对象。
3、 目标:通过一些规则让mybatis根据dao接口和映射文件中statement的定义生成接口实现代理对象。

Spring jdbc与传统jdbc
Spring jdbc就是在原生的JDBC代码上进行封装,提供一些接口,节省大量代码,传统的JDBC步骤为:建立连接、定义sql,执行sql,返回结果集、关闭连接释放资源。而在spring中,只需要调用相应的接口来实现sql定义和获取结果集,其他步骤都可以由spring实现。

七、springboot之spring-boot-starter-jdbc
第一个是对数据源的装配,第二个是提供一个JdbcTemplate简化使用,第三个是事务。
如果想SpringBoot为我们提供自动配置数据访问的基础设施,那么,我们需要直接或间接依赖spring-jdbc,一旦spring-jdbc位于我们SpringBoot应用的classpath,即会触发数据访问相关的自动配置行为,最简单的方法就是把spring-boot-starter-jdbc加为应用的依赖。(该spring-boot-starter-jdbc包提供对JDBC操作的支持,包括连接数据库、操作数据库,以及管理数据库连接等等)(spring-boot-starter-web:该starter包括web应用程序的依赖库)

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgaegjb
系列文章
更多 icon
同类精品
更多 icon
继续加载