设为首页 加入收藏

TOP

JDBC到底是怎么连上数据库的
2014-11-23 18:00:51 】 浏览:10244
Tags:JDBC 到底 怎么 连上 数据库

  JDBC到底是怎么连上数据库的


  Java.sql包中的 java.sql.Driver, jdbc.sql.Connection等提供给程序开发人员统一的开发接口
  数据库提供商提供相应的实现,对程序开发人员来讲只要知道这些接口都有哪些方法就可以了
  但我们可以深入一些 看看到底这里面都做了那些事, 同时也可以学习其中的编程模式(如Interface模式等)


  1 Class.forName(String classname) 的源码为:
  public final
  class Class implements java.io.Serializable {
  ...
  public static Class forName(String className)
  throws ClassNotFoundException {
  return forName0(className, true, ClassLoader.getCallerClassLoader());
  }
  ...
  }
  关于forName0 请自己查看JDK source.
  目的是把指定的Class装载到JVM中来。(注意class的装载、初始化过程)
  在装载过程中将执行被装载类的static块(如下)
  2 sun的JdbcOdbcDriver 源码:
  public class JdbcOdbcDriver extends JdbcOdbcObject
  implements JdbcOdbcDriverInterface
  {
  ...
  /**
  * connect to DB
  */
  public synchronized Connection connect(String s, Properties properties)
  throws SQLException
  {
  if(JdbcOdbcObject.isTracing())
  JdbcOdbcObject.trace("*Driver.connect (" + s + ")");
  if(!acceptsURL(s))
  return null;
  if(hDbc != 0)
  {
  disconnect(hDbc);
  closeConnection(hDbc);
  hDbc = 0;
  }
  if(!initialize())
  {
  return null;
  }
  else
  {
  JdbcOdbcConnection jdbcodbcconnection = new JdbcOdbcConnection(OdbcApi, hEnv, this);
  jdbcodbcconnection.initialize(getSubName(s), properties, DriverManager.getLoginTimeout());
  jdbcodbcconnection.setURL(s);
  return jdbcodbcconnection;
  }
  }


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇通用数据库操作BEAN 下一篇JAVA新手必备:Java基础之关键字

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目