當前位置:編程學習大全網 - 遊戲軟體 - 高分 java連接SQL server 2000 詳細步驟

高分 java連接SQL server 2000 詳細步驟

試試吧,

在JSP中訪問Oracle ,SqlServer ,DB2, Informix ,Access 數據庫

2007-1-13

在JSP中訪問Oracle ,SqlServer ,DB2, Informix ,Access 數據庫

現在有好多初學jsp的網友經常會問數據庫怎麽連接啊,怎麽老出錯啊?所以我集中的在這寫篇文章供大家參考,其實這種把數據庫邏輯全部放在jsp裏未必是好的做法,但是有利於初學者學習,所以我就這樣做了,當大家學到壹定程度的時候,可以考慮用MVC的模式開發。在練習這些代碼的時候,妳壹定將jdbc的驅動程序放到服務器的類路徑裏,然後要在數據庫裏建壹個表test,有兩個字段比如為test1,test2,可以用下面SQL建 create table test(test1 varchar(20),test2 varchar(20),然後向這個表寫入壹條測試紀錄,那麽現在開始我們的jsp和數據庫之旅吧。

壹、jsp連接Oracle8/8i/9i數據庫(用thin模式)

testoracle.jsp如下:

<%@ page contentType="text/html;charset=gb2312"%>

<%@ page import="java.sql.*"%>

<html>

<body>

<%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

String url="jdbc:oracle:thin:@localhost:1521:orcl";

//orcl為妳的數據庫的SID

String user="scott";

String password="tiger";

Connection conn= DriverManager.getConnection(url,user,password);

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select * from test";

ResultSet rs=stmt.executeQuery(sql);

while(rs.next()) {%>

您的第壹個字段內容為:<%=rs.getString(1)%>

您的第二個字段內容為:<%=rs.getString(2)%>

<%}%>

<%out.print("數據庫操作成功,恭喜妳");%>

<%rs.close();

stmt.close();

conn.close();

%>

</body>

</html>

二、jsp連接Sql Server7.0/2000數據庫

testsqlserver.jsp如下:

<%@ page contentType="text/html;charset=gb2312"%>

<%@ page import="java.sql.*"%>

<html>

<body>

<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();

String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";

//pubs為妳的數據庫的

String user="sa";

String password="";

Connection conn= DriverManager.getConnection(url,user,password);

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select * from test";

ResultSet rs=stmt.executeQuery(sql);

while(rs.next()) {%>

您的第壹個字段內容為:<%=rs.getString(1)%>

您的第二個字段內容為:<%=rs.getString(2)%>

<%}%>

<%out.print("數據庫操作成功,恭喜妳");%>

<%rs.close();

stmt.close();

conn.close();

%>

</body>

</html>

三、jsp連接DB2數據庫

testdb2.jsp如下:

<%@ page contentType="text/html;charset=gb2312"%>

<%@ page import="java.sql.*"%>

<html>

<body>

<%Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();

String url="jdbc:db2://localhost:5000/sample";

//sample為妳的數據庫名

String user="admin";

String password="";

Connection conn= DriverManager.getConnection(url,user,password);

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_UPDATABLE);

String sql="select * from test";

ResultSet rs=stmt.executeQuery(sql);

while(rs.next()) {%>

您的第壹個字段內容為:<%=rs.getString(1)%>

您的第二個字段內容為:<%=rs.getString(2)%>

<%}%>

<%out.print("數據庫操作成功,恭喜妳");%>

<%rs.close();

stmt.close();

conn.close();

%>

</body>

</html>

四、jsp連接Informix數據庫

testinformix.jsp如下:

<%@ page contentType="text/html;charset=gb2312"%>

<%@ page import="java.sql.*"%>

<html>

<body>

<%Class.forName("com.informix.jdbc.IfxDriver").newInstance();

String url =

"jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver;

user=testuser;password=testpassword";

//testDB為妳的數據庫名

Connection conn= DriverManager.getConnection(url);

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select * from test";

ResultSet rs=stmt.executeQuery(sql);

while(rs.next()) {%>

您的第壹個字段內容為:<%=rs.getString(1)%>

您的第二個字段內容為:<%=rs.getString(2)%>

<%}%>

<%out.print("數據庫操作成功,恭喜妳");%>

<%rs.close();

stmt.close();

conn.close();

%>

</body>

</html>

五、jsp連接Access數據庫

<%@page import="java.sql.*"

import ="java.util.*"

import ="java.io.*"

import="java.text.*"

contentType="text/html; charset=gb2312"

buffer="20kb"

%><%! int all,i,m_count;

String odbcQuery;

Connection odbcconn;

Statement odbcstmt;

ResultSet odbcrs;

String username,title,content,work,email,url,time,date;

String datetime;

%>

<%

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}catch (ClassNotFoundException e)

{ out.print ("驅動程序不存在");

}

try{

odbcconn = DriverManager.getConnection("jdbc:odbc:db1");

odbcstmt = odbcconn.createStatement();

odbcQuery="Select * From book where datetime>2001-4-26 Order By datetime DESC";

odbcrs=odbcstmt.executeQuery(odbcQuery);

int i=0;

while (i<130) odbcrs.next();

while (odbcrs.next())

{

//*/////////////////////////顯示數據庫的內容用於調試程序是用//

int ii;

try{

try{

for (ii=1;;ii++)

out.print ("<br>Cloumn "+ii+" is: "+odbcrs.getString(ii));

}catch (NullPointerException e) {

out.print ("有空的指針");

}

}catch (SQLException e){

}

}

odbcrs.close();

odbcstmt.close();

odbcconn.close();

}catch (SQLException e)

{ out.print (e);

}

%>

查看(24) 評論(0)

Hibernate快速入門

2006-11-10

其實Hibernate本身是個獨立的框架,它不需要任何web server或application server的支持。然而,大多數的Hibernate入門介紹都加入了很多非Hibernate的東西,比如: Tomcat, Eclipse, Log4J,Struts, XDoclet, 甚至JBoss。這容易讓人產生Hibernate復雜難懂的誤解,特別是打擊了初學者的積極性。

在這篇文章將不涉及Eclipse, log4j, Struts, Tomcat, XDoclet,和JBoss。本文的目的是演示壹下Hibernate的安裝過程以及最基本的功能,從而給初學者壹個低得不能再低的入門門檻。

下載文件

妳需要Java SDK、 Hibernate包、Ant包、和JDBC Driver。

1、Hibernate包下載地址:

/software/h ... tdocs/jdbc9201.html

MySQL JDBC Driver下載地址

/downloads/connector/j/3.0.html

PostgreSQL JDBC Driver下載地址

/downloa ... bf71&displaylang=en

4、將Hibernate包和Ant包分別解壓至c:dev下(此目錄不重要,妳可以換其它任何目錄)。

配置環境

1、妳需要添加壹個新的環境變量: ANT_HOME,讓它指向c:dev<的ANT包所在目錄>並在PATH環境變量裏添加%ANT_HOME%in。

2、妳需要添加壹個新的環境變量: JAVA_HOME,讓它指向妳的j2sdk根目錄。並在PATH環境變量裏添加%JAVA_HOME%in。

3、創建壹個項目ā?目錄,比如c:workspaceMy1stHibernate。

在項目目錄下,另外創建三個目錄: src, classes, lib。

在lib目錄下,創建兩個目錄: hibernate和db。

這樣妳有了如下的文件結構:

c:workspaceMy1stHibernate

c:workspaceMy1stHibernatesrc

c:workspaceMy1stHibernateclasses

c:workspaceMy1stHibernatelib

c:workspaceMy1stHibernatelibhibernate

c:workspaceMy1stHibernatelibdb

4、將c:dev<的Hibernate包所在目錄>hibernate2.jar文件copy到c:workspaceMy1stHibernatelibhibernate下。

將c:dev<的Hibernate包所在目錄>lib下的所有文件同樣copy到c:workspaceMy1stHibernatelibhibernate下。

將妳的JDBC Driver文件(壹般是壹個jar文件)copy到c:workspaceMy1stHibernatelibdb下。

創建數據庫

1、用妳最喜愛的database軟件,創建壹個hibernate_test的數據庫。

2、在此數據庫下,新建壹個table名為CUSTOMER

CREATE TABLE CUSTOMER

(

CID INTEGER NOT NULL PRIMARY KEY, USERNAME VARCHAR(12) NOT NULL, PASSWORD VARCHAR(12)

);

編寫Java文件

public class Customer {

private int id;

private String username;

private String password;

public int getId() {

return id;

}

public String getPassword() {

return password;

}

public String getUsername() {

return username;

}

public void setId(int id) {

this.id = id;

}

public void setPassword(String password) {

this.password = password;

}

public void setUsername(String username) {

this.username = username;

}

}

將此類存為c:workspaceMy1stHibernatesrcCustomer.java文件。

編寫Test類

import net.sf.hibernate.*;

import net.sf.hibernate.cfg.*;

public class Test {

public static void main(String[] args) {

try {

SessionFactory sf = new Configuration().configure().buildSessionFactory();

Session session = sf.openSession();

Transaction tx = session.beginTransaction();

for (int i = 0; i <200; i++) {

Customer customer = new Customer();

custoā?mer.setUsername("customer" + i);

customer.setPassword("customer");

session.save(customer);

}

tx.commit();

session.close();

} catch (HibernateException e) {

e.printStackTrace();

}

}

}

將此類存為c:workspaceMy1stHibernatesrcTest.java文件。

創建Hibernate映射文件

因為這裏只有壹個Class --- Customer 和壹個Table --- CUSTOMER,妳只需要建立壹個映射文件--- Customer.hbm.xml,來對應Customer類和CUSTOMER表之間的關系。

<xml version="1.0"?>

<DOCTYPE hibernate-mapping PUBLIC

"-//Hibernate/Hibernate Mapping DTD//EN"

"pile the source files">

<avac classpathref="myclasspath" srcdir="${src.dir}" destdir="${build.dir}" />

<opy todir="${build.dir}" >

<ileset dir="${src.dir}" >

ā?<xclude name="**/*.java"/>

<fileset>

<copy>

<target>

<arget name="run" depends="build">

<ava classpathref="myclasspath" classname="Test" fork="true" />

<target>

<arget name="clean">

<elete includeEmptyDirs="true">

<ileset dir="${build.dir}" />

<delete>

<target>

<project>

配置Hibernate描述文件

Hibernate描述文件可以是壹個properties或xml 文件,其中最重要的是定義數據庫的連接。我這裏列出的是壹個XML格式的hibernate.cfg.xml描述文件。

<xml version="1.0" encoding="utf-8" ?>

<DOCTYPE hibernate-configuration

PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"

" 和 eBay)。但是,伴隨著 Web 的強大而出現的是等待,等待服務器響應,等待屏幕刷新,等待請求返回和生成新的頁面。

顯然這樣說過於簡略了,但基本的概念就是如此。您可能已經猜到,Ajax 嘗試建立桌面應用程序的功能和交互性,與不斷更新的 Web 應用程序之間的橋梁。可以使用像桌面應用程序中常見的動態用戶界面和漂亮的控件,不過是在 Web 應用程序中。

還等什麽呢?我們來看看 Ajax 如何將笨拙的 Web 界面轉化成能迅速響應的 Ajax 應用程序吧。

老技術,新技巧

在談到 Ajax 時,實際上涉及到多種技術,要靈活地運用它必須深入了解這些不同的技術(本系列的頭幾篇文章將分別討論這些技術)。好消息是您可能已經非常熟悉其中的大部分技術,更好的是這些技術都很容易學習,並不像完整的編程語言(如 Java 或 Ruby)那樣困難。

Ajax 的定義

順便說壹下,Ajax 是 Asynchronous JavaScript and XML(以及 DHTML 等)的縮寫。這個短語是 Adaptive Path 的 Jesse James Garrett 發明的(請參閱 參考資料),按照 Jesse 的解釋,這不是 個首字母縮寫詞。

下面是 Ajax 應用程序所用到的基本技術:

HTML 用於建立 Web 表單並確定應用程序其他部分使用的字段。

JavaScript 代碼是運行 Ajax 應用程序的核心代碼,幫助改進與服務器應用程序的通信。

DHTML 或 Dynamic HTML,用於動態更新表單。我們將使用 div、span 和其他動態 HTML 元素來標記 HTML。

文檔對象模型 DOM 用於(通過 JavaScript 代碼)處理 HTML 結構和(某些情況下)服務器返回的 XML。

我們來進壹步分析這些技術的職責。以後的文章中我將深入討論這些技術,目前只要熟悉這些組件和技術就可以了。對這些代碼越熟悉,就越容易從對這些技術的零散了解轉變到真正把握這些技術(同時也真正打開了 Web 應用程序開發的大門)。

XMLHttpRequest 對象

要了解的壹個對象可能對您來說也是最陌生的,即 XMLHttpRequest。這是壹個 JavaScript 對象,創建該對象很簡單,如清單 1 所示。

清單 1. 創建新的 XMLHttpRequest 對象

<script language="javascript" type="text/javascript">

var xmlHttp = new XMLHttpRequest();

</script>

下壹期文章中將進壹步討論這個對象,現在要知道這是處理所有服務器通信的對象。繼續閱讀之前,先停下來想壹想:通過 XMLHttpRequest 對象與服務器進行對話的是 JavaScript 技術。這不是壹般的應用程序流,這恰恰是 Ajax 的強大功能的來源。

在壹般的 Web 應用程序中,用戶填寫表單字段並單擊 Submit 按鈕。然後整個表單發送到服務器,服務器將它轉發給處理表單的腳本(通常是 PHP 或 Java,也可能是 CGI 進程或者類似的東西),腳本執行完成後再發送回全新的頁面。該頁面可能是帶有已經填充某些數據的新表單的 HTML,也可能是確認頁面,或者是具有根據原來表單中輸入數據選擇的某些選項的頁面。當然,在服務器上的腳本或程序處理和返回新表單時用戶必須等待。屏幕變成壹片空白,等到服務器返回數據後再重新繪制。這就是交互性差的原因,用戶得不到立即反饋,因此感覺不同於桌面應用程序。

Ajax 基本上就是把 JavaScript 技術和 XMLHttpRequest 對象放在 Web 表單和服務器之間。當用戶填寫表單時,數據發送給壹些 JavaScript 代碼而不是 直接發送給服務器。相反,JavaScript 代碼捕獲表單數據並向服務器發送請求。同時用戶屏幕上的表單也不會閃爍、消失或延遲。換句話說,JavaScript 代碼在幕後發送請求,用戶甚至不知道請求的發出。更好的是,請求是異步發送的,就是說 JavaScript 代碼(和用戶)不用等待服務器的響應。因此用戶可以繼續輸入數據、滾動屏幕和使用應用程序。

然後,服務器將數據返回 JavaScript 代碼(仍然在 Web 表單中),後者決定如何處理這些數據。它可以迅速更新表單數據,讓人感覺應用程序是立即完成的,表單沒有提交或刷新而用戶得到了新數據。JavaScript 代碼甚至可以對收到的數據執行某種計算,再發送另壹個請求,完全不需要用戶幹預!這就是 XMLHttpRequest 的強大之處。它可以根據需要自行與服務器進行交互,用戶甚至可以完全不知道幕後發生的壹切。結果就是類似於桌面應用程序的動態、快速響應、高交互性的體驗,但是背後又擁有互聯網的全部強大力量。

加入壹些 JavaScript

得到 XMLHttpRequest 的句柄後,其他的 JavaScript 代碼就非常簡單了。事實上,我們將使用 JavaScript 代碼完成非常基本的任務:

獲取表單數據:JavaScript 代碼很容易從 HTML 表單中抽取數據並發送到服務器。

修改表單上的數據:更新表單也很簡單,從設置字段值到迅速替換圖像。

解析 HTML 和 XML:使用 JavaScript 代碼操縱 DOM(請參閱 下壹節),處理 HTML 表單服務器返回的 XML 數據的結構。

對於前兩點,需要非常熟悉 getElementById() 方法,如 清單 2 所示。

清單 2. 用 JavaScript 代碼捕獲和設置字段值

// Get the value of the "phone" field and stuff it in a variable called phone

var phone = document.getElementById("phone").value;

// Set some values on a form using an array called response

document.getElementById("order").value = response[0];

document.getElementById("address").value = response[1];

這裏沒有特別需要註意的地方,真是好極了!您應該認識到這裏並沒有非常復雜的東西。只要掌握了 XMLHttpRequest,Ajax 應用程序的其他部分就是如 清單 2 所示的簡單 JavaScript 代碼了,混合有少量的 HTML。同時,還要用壹點兒 DOM,我們就來看看吧。

以 DOM 結束

最後還有 DOM,即文檔對象模型。可能對有些讀者來說 DOM 有點兒令人生畏,HTML 設計者很少使用它,即使 JavaScript 程序員也不大用到它,除非要完成某項高端編程任務。大量使用 DOM 的是 復雜的 Java 和 C/C++ 程序,這可能就是 DOM 被認為難以學習的原因。

幸運的是,在 JavaScript 技術中使用 DOM 很容易,也非常直觀。現在,按照常規也許應該說明如何使用 DOM,或者至少要給出壹些示例代碼,但這樣做也可能誤導您。即使不理會 DOM,仍然能深入地探討 Ajax,這也是我準備采用的方法。以後的文章將再次討論 DOM,現在只要知道可能需要 DOM 就可以了。當需要在 JavaScript 代碼和服務器之間傳遞 XML 和改變 HTML 表單的時候,我們再深入研究 DOM。沒有它也能做壹些有趣的工作,因此現在就把 DOM 放到壹邊吧。

回頁首

獲取 Request 對象

有了上面的基礎知識後,我們來看看壹些具體的例子。XMLHttpRequest 是 Ajax 應用程序的核心,而且對很多讀者來說可能還比較陌生,我們就從這裏開始吧。從 清單 1 可以看出,創建和使用這個對象非常簡單,不是嗎?等壹等。

還記得幾年前的那些討厭的瀏覽器戰爭嗎?沒有壹樣東西在不同的瀏覽器上得到同樣的結果。不管您是否相信,這些戰爭仍然在繼續,雖然規模較小。但令人奇怪的是,XMLHttpRequest 成了這場戰爭的犧牲品之壹。因此獲得 XMLHttpRequest 對象可能需要采用不同的方法。下面我將詳細地進行解釋。

使用 Micr

  • 上一篇:教妳三步看懂電路圖技巧
  • 下一篇:如錦姑奶奶和管家好上第幾集
  • copyright 2024編程學習大全網