java数据库相关总结

一、JDBC

1. 数据库连接简述

使用java作为客户端连接数据库服务器的通道,操作数据库并获取结果

2. 数据库连接步骤

  1. 加载驱动
  2. 创建连接
  3. 获取sql执行对象
  4. 执行sql
  5. 获取结果
  6. 关闭连接并释放资源

3. 常用的JDBC是什么

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API。JDBC API提供了一个标准接口,用于与任何关系数据库管理系统(RDBMS)进行交互。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。

简单来说,jdbc就是java封装的类库,java提供了一些接口用于连接数据库,由不同的数据库厂商对它实现。这些接口在jdk中的rt.jar包下,主要有Driver、Connection、Statement、PreparedStatement等。

4. JDBC的结构

在这里插入图片描述
JDBC Driver Interface(驱动程序管理器接口)是面向底层的,JDBC API则是面向开发人员的。

(1)JDBC Driver(JDBC驱动程序)

驱动程序实现JDBC接口与数据库进行交互,数据库供应商提供JDBC驱动程序。

分类:

  1. JDBC-ODBC桥的方式。但这种方式不适合程序的重用与维护,不推荐使用。需要数据库的ODBC驱动。
  2. JDBC+厂商API的形式。厂商API一般使用C编写,所以,这种方式也不长使用。
  3. JDBC+厂商Database Connection Server+DataBase的形式。
    这种方法就是在JAVA 与 DATABASE之间价起了一台专门用与数据库连接的服务器(一般由数据库厂商提供)。他的好处在于能优化连接。
  4. 纯JDBC+DATABASE的连接方式。也是推荐的连接方式。这使得APPLICATION与数据库分开,开发者只需关心内部逻辑的实现而不需注重数据库连接的具体实现。在这其中有两种连接的方式:
    硬编码方式,就是在程序中硬性编入数据库连接的所须参数。
    JNDI DataSource方式。就是在程序运行的外布环境中又称(Context)设置一个datasource数据源,有一个jndi 名称,程序只须查找此名称就可得到一个数据库连接的对象。

(2)Connection(连接)

通过Connection对象,与数据库进行交互,例如,创建一个Statement来对表执行SQL查询,可以一次打开多个数据库连接。

(3)Statement(声明)

要执行SQL查询,例如SELECT,INSERT,UPDATE,DELETE等,可以使用Statement对象。通过Connection对象创建Statement 对象。JDBC提供了几种类型的不同用途,如语句PreparedStatement,CallableStatement 。

(4)ResultSet(结果集)

从数据库查询数据后,将获得一个ResultSet对象。该ResultSet对象提供了一组API,允许遍历查询结果。

二、数据库连接池

1. 什么是数据库连接池

数据库连接池(Database Connection Pooling)在程序初始化时在内存中创建多个数据库连接对象,当需要操作数据库时从池中取出,用完放回,和线程池一样。

2. 优点

1.节省资源,避免每次操作数据库都创建新连接导致浪费系统资源
2.响应性更好,省去了创建的时间
3.统一管理数据库连接,避免因为业务的膨胀导致数据库连接的无限增多
4.便于监控

3. 详解

感兴趣可以看看http://www.360doc.com/content/20/0117/15/13328254_886693035.shtml

三、ORM数据库框架

ORM(Object Relational Mapping对象关系映射)框架是为了解决面向对象与关系型数据类型不匹配的问题,通过描述java对象与数据库表之间的映射关系,自动将java应用程序中的对象持久化到关系型数据库的表中。

常见的框架Hibernate和MyBatis

1. Hibernate

全表映射的框架,只需要定义好持久化对象到数据库表的映射,因为Hibernate会自动生成对应的SQL,并调用JDBC执行

优点:

1)、hibernate是全自动,可以通过对象关系模型实现对数据库的操作,拥有完整的JavaBean对象与数据库的映射结构来自动生成sql。

2)、功能强大,数据库无关性好,O/R映射能力强,需要写的代码很少,开发速度很快。

3)、有更好的二级缓存机制,可以使用第三方缓存。

4)、数据库移植性良好。

5)、hibernate拥有完整的日志系统,hibernate日志系统非常健全,涉及广泛,包括sql记录、关系异常、优化警告、缓存提示、脏数据警告等

缺点:

1、学习门槛高,精通门槛更高,程序员如何设计O/R映射,在性能和对象模型之间如何取得平衡,以及怎样用好Hibernate方面需要的经验和能力都很强才行

2、hibernate的sql很多都是自动生成的,无法直接维护sql;虽然有hql查询,但功能还是不及sql强大,见到报表等变态需求时,hql查询要虚,也就是说hql查询是有局限的;hibernate虽然也支持原生sql查询,但开发模式上却与orm不同,需要转换思维,因此使用上有些不方便。总之写sql的灵活度上hibernate不及mybatis。

2. MyBatis

MyBatis 框架是一个半自动映射的框架,不完全的ORM,因为MyBatis 框架需要手动匹配提供 POJO、SQL 和映射关系,而 Hibernate 框架只需提供 POJO 和映射关系即可。

与 Hibernate 框架相比,虽然使用 MyBatis 框架手动编写 SQL 要比使用 Hibernate 框架的工作量大,但 MyBatis 框架可以配置动态 SQL 并优化 SQL、通过配置决定 SQL 的映射规则,以及支持存储过程等。对于一些复杂的和需要优化性能的项目来说,显然使用 MyBatis 框架更加合适。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值