亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

數據源在jdbc中的應用(1)

2019-11-18 12:40:06
字體:
來源:轉載
供稿:網友

  簡介
  眾所周知,JDBC(java數據庫連接)是Java 2企業版的重要組成部分。它是基于SQL層的API。通過把SQL語句嵌入JDBC接口的方法中,用戶可以通過Java程序執行幾乎所有的數據庫操作。JDBC只提供了接口,具體的類的實現要求數據庫的設計者完成。通過生成這些接口的實例,即使對于不同的數據庫,Java程序也可以正確地執行SQL調用。所以對于 程序員來說,不必把注重力放在如何向數據庫發送SQL指令,因為程序員需要了解和用到
  的只是JDBC的接口,只有在極少數情況下會用到面向特定數據庫的類,例如程序員希望使用Oracle的擴展API。
  在JDBC程序中,首先需要做的是實現與數據庫的連接。在示例程序中,我們使用的是OR ACLE8i的JDBC包。連接數據庫通常需要實現以下幾個步驟:
  1. 注冊數據庫驅動程序(driver)??梢酝ㄟ^調用java.sql.DriverManager類的regis
  terDriver方法顯式注冊驅動程序,也可以通過加載數據庫驅動程序類隱式注冊驅動程序
  。例如我們希望向虛擬機注冊 // 顯式注冊
  DriverManager.registerDriver(new oracle.jdbc.driver.// 隱式注冊
  Class.forName(“oracle.jdbc.driver.
  關于虛擬機如何自動注冊通過類加載器(ClassLoader)加載的數據庫驅動程序超過了本 文討論的范圍,在此不做具體討論。
  2. 建立連接。調用java.sql.DriverManager類的getConnection()方法可以建立與數 據庫的連接。GetConnection()方法返回一個Connection對象。需要注重的是,getCo
  nnection()方法會自動從數據庫驅動程序注冊表中選擇一個最合適的驅動程序。
  3. 建立連接后,答應自動更新(AutoCommit)。調用java.sql.Connection接口的ser
  AutoCommit()方法可以設定當程序向數據庫發出一條SQL指令后,數據庫是否立即更新 。
  下面是一個具體的實例。在該實例中,作為getConnection()方法參數的url使用的是
  Net8 keyWord-value pair格式。當然也可以使用普通格式。數據庫安裝在名為Chicago
  的服務器上,使用的協議是TCP協議,使用的端口是1521,數據庫的SID是chidb,使用的
  數據庫驅動程序是 import java.sql.*;
  // 初始化常數
  PRivate static String url =
    “jdbcracle:thin:@(description=(address=(host=Chicago)” +
    “(protocol=tcp)(port=1521))(connect_data=(sid=chidb)))”;
    // 也可以設定url為“jdbcracle:thin:@ Chicago:1521:chidb”
    private static String username = “guest”;
  private static String password = “guest”;
  try
  {
    // 注冊數據庫
    Class.forName(“oracle.jdbc.driver.  // 建立連接
    Connection conn =
   DriverManager.getConnection(url, username, password);
  // 答應自動更新
  Conn.setAutoCommit(true);
  }
  catch(ClassNotFoundException e )
  {
  e.printStackTrace();
  }
  catch(SQLException e)
  {
  e.printStackTrace();
  }
  從實際應用的角度出發,我們可以看出采取這種方式連接到數據庫存在幾個問題。第一 是安全性問題,由于程序代碼中包含用戶名和密碼,其他人假如能得到bytecode,可以通過反編譯工具獲得用戶名和密碼。第二是代碼的可移植性問題。假如希望連接的數據庫名稱或用戶名有所更改,程序員需要修改源程序,然后把修改過的程序發送給用戶。
  也就是說,軟件無法脫離數據庫獨立存在。這樣不僅會大大提高軟件的成本,也不利于軟件本身的發展。還可能出現這樣的情況:在某些情況下,提供數據的機構不希望數據庫的用戶名和密碼讓編寫程序的程序員知道知道。這樣就提出了一個問題,如何使Java和數據庫之間建立連接時隱藏一些敏感的信息。
  數據源(Data Source)及JNDI
  數據源是在JDBC 2.0中引入的一個概念。在JDBC 2.0擴展包中定義了javax.sql.DataSo
  urce接口來描述這個概念。假如用戶希望建立一個數據庫連接,通過查詢在JNDI服務中的數據源,可以從數據源中獲取相應的數據庫連接。這樣用戶就只需要提供一個邏輯名稱(Logic Name),而不是數據庫登錄的具體細節。
  在這里有必要簡單介紹一下JNDI。JNDI的全稱是Java Naming and Directory Interface, 可以理解為Java名稱和目錄服務接口。JNDI向應用程序提供了一個查詢和使用遠程 服務的機制。這些服務可以是任何企業服務。對于JDBC應用程序來說,JNDI提供的是數 據庫連接服務。當然JNDI也可以向數據庫提供其他服務,但是這超出了本文范圍,在此 不做論述。
  其實JNDI并不難理解。簡單來說,名稱服務提供了一個把文件,打印機,服務器等實體 映射到一個邏輯名稱的機制。例如在操作系統中的名稱服務就把打印機映射到一個I/O端 口。而目錄服務可以理解為名稱服務的一個擴展,它答應在服務中的各項擁有自己的屬 性。又以打印機為例,打印機可以是彩色打印機,支持雙面打印,支持網絡打印,支持 高速打印等。所有這些打印機的屬性都可以儲存在目錄服務中,和相應的打印機聯系起 來。一些常見的目錄服務有NIS,NIS+,LDAP和Novell的NDS等。
  JNDI使應用程序通過使用邏輯名稱獲取對象和對象提供的服務,從而使程序員可以避免 使用與提供對象的機構有關聯的代碼。例如在下面的例子中使用了在JNDI中的數據源,
  程序員就不需要提供

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人亲热视频网站| 国产精品成人aaaaa网站| 欧美成人免费在线观看| 欧美日韩中文字幕综合视频| 国产欧美日韩免费看aⅴ视频| 中文字幕亚洲自拍| 69av成年福利视频| 日本在线观看天堂男亚洲| 久久国产精品亚洲| 亚洲欧洲一区二区三区在线观看| 欧美老少做受xxxx高潮| 精品一区二区三区四区| 狠狠躁夜夜躁久久躁别揉| 日韩小视频在线| 欧美麻豆久久久久久中文| 性欧美xxxx| 国产ts人妖一区二区三区| 国产精品日韩在线| 欧美性感美女h网站在线观看免费| 国产一区二区在线免费视频| 日韩av在线电影网| 久久久精品中文字幕| 亚洲最大福利网站| 热久久这里只有| 国产在线观看91精品一区| 国产精品h片在线播放| 欧美www视频在线观看| 日韩视频亚洲视频| 亚洲欧美精品一区| 亚洲999一在线观看www| 91中文字幕在线| 成人信息集中地欧美| 亚洲国产97在线精品一区| 欧美人在线视频| 国产精品日韩久久久久| 成人在线视频网| 亚洲在线第一页| 亚洲福利在线观看| 欧美性猛交xxxx偷拍洗澡| 日韩精品视频免费| xx视频.9999.com| 欧美色视频日本高清在线观看| 在线电影欧美日韩一区二区私密| 久久手机精品视频| 亚洲人成电影网站色xx| 久久五月天综合| 欧美精品电影免费在线观看| 精品日本高清在线播放| 国内精品久久久久久| 成人精品视频久久久久| 91久久久久久久一区二区| 久久天堂电影网| 7777免费精品视频| 欧美激情xxxx性bbbb| 亚洲第一天堂无码专区| 97久久精品人人澡人人爽缅北| 久久久久久一区二区三区| 欧洲美女7788成人免费视频| 国产午夜精品免费一区二区三区| 免费av在线一区| 日韩欧美视频一区二区三区| 亚洲福利在线视频| 日韩视频免费看| 欧美大尺度在线观看| 91精品国产综合久久香蕉最新版| 日韩精品免费在线视频| 久久最新资源网| 大荫蒂欧美视频另类xxxx| 久久亚洲成人精品| 欧美精品激情在线| 日韩视频免费看| 日韩免费黄色av| 91精品视频在线看| 97国产精品视频人人做人人爱| 日韩视频在线观看免费| 91免费的视频在线播放| 亚洲日本欧美日韩高观看| 精品小视频在线| 国产欧美日韩专区发布| 久久人人爽人人爽人人片亚洲| 97在线日本国产| 国产精品99久久99久久久二8| 欧美性生活大片免费观看网址| 成人啪啪免费看| 亚洲在线免费看| 国产精品美女主播| 成人h视频在线观看播放| 国产一区二区三区在线观看视频| 91精品国产乱码久久久久久蜜臀| 81精品国产乱码久久久久久| 国产精品久久久91| 欧美色欧美亚洲高清在线视频| 中日韩美女免费视频网址在线观看| 日本一欧美一欧美一亚洲视频| 久久精品99无色码中文字幕| 亚洲缚视频在线观看| 久久久成人精品| 欧美老女人在线视频| 国产精品久久久久久中文字| 精品欧美aⅴ在线网站| 精品国产鲁一鲁一区二区张丽| 欧美精品在线免费播放| 国产精品福利网站| 亚洲精品v欧美精品v日韩精品| 久久免费视频在线| 亚洲精品电影在线| 日韩小视频网址| 4438全国成人免费| 国产免费亚洲高清| 国产91露脸中文字幕在线| 亚洲男女自偷自拍图片另类| 欧美一级淫片aaaaaaa视频| 亚洲男人天堂视频| 欧美成人精品h版在线观看| 日韩免费在线电影| 亚洲最大在线视频| 成人夜晚看av| 国产精品久久久久久久电影| 亚洲永久在线观看| 一级做a爰片久久毛片美女图片| 在线播放国产一区二区三区| 性色av一区二区三区免费| 欧美性高跟鞋xxxxhd| 国产精品一区二区三区毛片淫片| 日韩美女av在线| 国产主播在线一区| 国产丝袜一区二区| 亚洲视频777| 91精品啪aⅴ在线观看国产| 欧美激情图片区| 日韩av电影在线网| 成人黄色免费网站在线观看| 日韩在线观看免费高清| 亚洲aⅴ日韩av电影在线观看| 91po在线观看91精品国产性色| 精品视频—区二区三区免费| 亚洲成人aaa| 在线播放国产一区中文字幕剧情欧美| 国内精品一区二区三区四区| 91精品国产91久久久| 成人美女免费网站视频| 欧美孕妇毛茸茸xxxx| 88xx成人精品| 欧美激情国产日韩精品一区18| 亚洲天堂成人在线| 久久91亚洲精品中文字幕奶水| 国产噜噜噜噜噜久久久久久久久| 国产午夜精品一区理论片飘花| 国产中文日韩欧美| 成人免费看片视频| 亚洲第一色在线| 亚洲 日韩 国产第一| 国产亚洲精品久久久久久| 欧美在线视频一区二区| 精品一区二区电影| 久久精品99无色码中文字幕| 久久91精品国产91久久久| 国产精品成人va在线观看| 亚洲精品日韩丝袜精品| 亚洲国产精品久久久| 欧美日韩在线免费| 亚洲一区二区三区xxx视频| 欧美成人激情图片网| 色综合视频网站|