积跬步,聚小流-------JDBC连接数据库

数据库中存储数据,java中对数据进行操作,这就需要建立java和数据库中的连接,目前个人用过两种,JDBC连接数据库和hibernate,hibernate的诞生是为了实现对数据库操作更广泛的统一和更好的移植性,更好的实现跨数据库操作,而hibernate也是对JDBC的再封装,所以对JDBC的了解非常有必要。

JDBC

JAVA DATABASE CONNECTIVITY,从字面意义看,就知道是java语言访问数据库的一种标准规范,是一套API。

其实它是一组标准的java语言的接口和类,目的是为了更方便的访问不同类型的数据库,是通过接口和实现分离的思想来设计java数据库编程的框架,

 

这里我们可以看到java.sql,而所谓的接口和实现分离的接口就在这里。

 

但不得不说JDBC只是一种低级接口,所以之后才有了hibernate,所谓“低级接口”的意思就是说,它能够直接调用SQL,也就是说我们可以通过sql语句将数据库的数据取出来,而之后出现的hibernate则基于这个的基础上有了发展,就是映射出一个新的对象,然后再进行操作的时候可以直接对对象进行操作,而不像JDBC里面我们取出数据来之后自己再合成对象。

说说JDBC的基本用法:

1、加载数据库驱动;

JDBC数据库驱动据说有四种,但是一直没有看明白究竟啥意思,就说说使用方法吧

通常是将一个驱动的jar包拷入工程,然后在java语言中利用Class.forName()进行加载;

2、建立数据库连接;

Connection conn=DriveManager.getConnection(url,"","");

DriveManager是一个实现类,是设计模式中的工厂模式体现,在DriveManager工厂中有一个方法getDriver(String url),通过这个方法可以得到驱动程序对象,这个方法是各个数据库厂商按照JDBC规范设计的数据库驱动程序包里的类中静态实现的,而Connection是一个控制数据库连接对象的接口,是通过Drivermanager工厂中的getConnection(String URL)方法来实现的,而URL则就是用来确定数据库类型的

3、发送SQL语句;

pstm=conn.prepareStatement(sql);

实际上Connection提供了三个类用来发送sql语句,其中

Statement有方法createStatement()方法来获取,这一种通常用来发送简单的SQL语句;

PrepareStatement是有方法prepareStatement()来获取的,是继承与statement的,所以它具有statement的功能,但是又高于statement,因为它是对于sql语句进行预编译的,效率上要更高一些;

CallableStatement是有方法prepareCall()获取的,它是继承于prepareStatement的,它继承了PrepareStatement中带一个活多个In参数的方法,还增加了处理OUT参数和INOUT参数的方法,通常用来调用已存储的过程

4、执行SQL语句,得到结果集;

以Statement为例,其它两个都是继承于它的,肯定也会有它的方法。

Statement提供了三种执行SQL语句的方法,execute()、executeQuery()和executeUpdate(),具体执行哪个方法还要看sql语句。

通常excuteQuery通常用于产生单个结果集的语句,而excuteUpdate()则多用于执行insert、update、delete方法,它的返回值是一个整数,是受影响的行数,而drop和create方法则返回0

5、关闭数据库连接

 

所以说也就总结为JDBC的功能可以总结为三件事:创建数据库连接、发送可执行语句并获取执行结果

发一个神图,也算是我当年uml入门的图

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值