【回顾】还记得JDBC吗?

还记得之前也写过关于在oracle中如何使用JDBC操作数据库的博客

http://blog.csdn.net/wangyy130/article/details/47946465

貌似写的我很懂理解的恨透似的。其实当时并没有理解真正的JDBC是什么意思,尤其是说到它是对各种数据库的封装,
是访问各种数据库的API的时候,更是一头雾水。现在重新回过头来再看,才明白这两句话真正的含义。
简单的说一下我对它的理解:

JDBC究竟是什么

这里写图片描述

还记得这张经典的JDBC的图吗?现在解释它,我已经完全不用去复制百科里面的东西了。我可以用自己的语言来解释它了。。。
我们每安装一个新类型的数据库,比如oracle,mysql,我们可以直接打开数据库进行操作,建表,增删改查等操作。
但是如果我们在开发程序(application)开发时,我们就必须要通过Java语言或者其他的语言(JDBC主要针对Java语言)来编写代码,
去连接数据库。这样,我们才能根据获取的某个数据库的连接去操作我们的数据库。但是这样就会暴露出很大的问题:
编写连接数据库的代码对于开发者来说很繁琐,而且多种数据库连接的方式还不一样,代码的格式就会出现不同的版本,很混乱。
而且在操作数据库时,不同的数据库又有着自己不同的API等等
那么为了适应我们开发人员的需求,JDBC就产生了,它将连接各种数据库的方法封装起来,形成一个统一的一套接口提供给开发人员。
我们只需要按照这套接口提供的参数,将对应的参数信息传递给JDBC,它就会自动帮我们连接上数据库。同时,它还帮助我们封装了关于操作数据库的一系列的接口。

DriverManager

还记得DriverManager吗?通过它,我们可以获取connection的连接。
它就相当于application通往数据库的一个大管家。谁想要取得跟数据库的连接首先必须得到DriverManager这儿来获取Connection。
在获取connection时,我们必须要获取连接数据库的驱动。通常只需要实例化一下驱动的类就可以,不需要显式的进行注册。
//oracle
//获取连接数据库的驱动,实例化的时候会自动注册到DriverManager上
 Class.forName("oracle.jdbc.driver.OracleDriver");//找到oracle驱动器所在的类  

//mysql的数据库驱动注册
 Class.forName("com.mysql.jdbc.Driver");
当然这个字符串是不需要记住的。这个在我们引入的数据库驱动包里面直接就可以找到的。oracle数据库安装后,
在我们的安装目录中就默认存在这个jar包了,我们只需要找到它进行引用就可以了。
mysql数据库是需要单独引入mysql-connector-java-5.1.33.jar的
DriverManager会根据你注册的驱动来区分你使用的数据库的类型。于是,你就可以获取相应数据库的连接了。

Connection

上面我们已经说过了,通过DriverManager创建了Connection,这个就是我们要获取的连接。通过connection我们可以进一步的创建我们要操作数据库的statement了.

Statement

还记得这几个方法吗?
Connection conn=DriverManager.getConnection(url,username,pass);
Statement st=conn.createStatement();
PrepareStatement //Statement pst=conn.prepareStatement();//prepareStatement

CallableStatement cst=conn.prepareCall();//conn.prepareCall
st.executeQuery(str);
connection通过创建statement来将我们的sql语句传递给statement,通过它来执行增删改查的操作。

当然,如果数据查询的是一个结果集,那么JDBC还为我们提供了ResultSet来存放数据。

ResultSet

详情使用,请查看博客:

http://blog.csdn.net/wangyy130/article/details/47946465

值得注意的是:resultset默认指向的并不是结果集中的第一个元素,而是第一个元素的head,只有执行rs.next才会指向第一个元素。
在JDBC中最主要的封装的就是这几个我们常见的对象了。其他的还是需要大家继续探索。最后,我想区分一下关于DriverManager和DataSource之间的关系。
目前衍生出的RowsSet是ResultSet的子类。可以支持断开的查询。

DriverManager和DataSource

简单的比较一下,理解的并不是很透彻。
DataSource可以看做是DriverManager的替代品,它也是封装了数据库的连接信息。但是通过DataSource不仅可以满足正常的连接和访问数据库的需求。
而且还支持连接池和分布式。DataSource还支持Jndi进行查找。

以上就是我对JDBC的一些新的理解和认识。相比自己原来的认识还是深入的很多。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值