Jakarta-Struts是Apache軟件組織提供的一項開放源代碼項目,它為Java Web應用提供了模型-視圖-控制器(MVC)框架,尤其適用于開發大型可擴展的Web應用. Struts為Web應用提供了一個通用的框架,使得開發人員可以把精力集中在如何解決實際業務問題上. 此外,Struts框架提供了許多可供擴展和定制的地方使得應用程序可以方便的擴展框架,來更好的適應用戶的實際需求.
本文是一篇介紹利用MyEclipse進行Struts開發的基礎教程,通過詳細的描述和大量的圖片來展現Struts開發的具體過程. 這里所采用的是我們經常會遇到的用戶登陸的實例,如果用戶登陸成功進入程序的主界面(main.jsp),否則返回登陸頁面并提示錯誤信息.
n??????? 創建Web項目
在菜單中依次點擊File→New→Project,然后在彈出的窗口中選擇J2EE→Web Project,啟動Web項目創建向導。
點擊下一步,在項目名稱中,我們輸入StrutsDemo,然后修改Context root URL為/hello,其他我們使用默認的設置,最后點擊Finish按鈕完成創建工作.
在項目創建后,我們需要讓它支持Struts功能. 在菜單中選擇MyEclipse→Add Struts Capabilities. 在彈出的對話框中, 將Struts specification修改為1.2,將Base package for new classes修改為我們喜歡的包名,如com.study.struts,修改完成后點擊Finish按鈕.
在Package Explore中,我們可以看到增加了Struts能力后,MyEclipse在Web項目中增加了很多jar文件和tld文件,請參考下圖:
n??????? 創建JSP文件
在我們的登陸程序中一共需要兩個JSP文件. 一個是index.jsp,作為用戶登陸的界面和登陸失敗后的返回界面. 一個是main.jsp,作為登陸成功后的主界面.
在Package Explore中雙擊struts-config.xml將其打開,在源代碼窗口中點擊左側工具欄中的
,在彈出的JSP文件創建向導中修改文件名為index.jsp,選擇5]Standard JSP using Struts 1.2 with a form模板,然后點擊Finish按鈕. MyEclipse會為我們創建一個名為index.jsp的帶一個Form的JSP文件.
按照同樣的方法創建main.jsp. 由于我們只是簡單的在主界面中顯示成功登陸的信息,因此在創建的時候,我們選擇的是第一個缺省的模板.
JSP文件創建后,我們可以根據自己的需要來修改其中的內容. 對于index.jsp,我們修改Form的action屬性和提交參數的名字, 并增加了標簽,可參考下面的代碼:
??? <html:form action="/login.do" method="post" focus="login">
????? <center><html:errors/>center>
????? <table border="0">
??????? <tr>
????????? <td>Name:td>
????????? <td><html:text property="name" />td>
??????? tr>
??????? <tr>
????????? <td>Password:td>
????????? <td><html:password property="password" />td>
??????? tr>
??????? <tr>
????????? <td colspan="2" align="center"><html:submit />td>
??????? tr>
????? table>
html:form>
?????? 對于main.jsp,我們修改中的輸出信息,提示用戶登陸成功,代碼如下:
? ? <body>
?? ???? ?You have logged in!<br>
? ? body>
?????? 保存兩個JSP文件和struts-config.xml文件.
n??????? 創建ActionForm
在我們的登陸程序中需要用戶提交用戶名和密碼,因此我們需要創建一個ActionForm Bean來保存提交的HTML表單數據.
將源代碼窗口中的標簽切換到struts-config.xml,右上角的Outline窗口內容如下:
選中其中的form-beans,右鍵單擊,在彈出的菜單中選擇New Form. 在Form Bean創建向導對話框中,輸入Use case的名字login,然后在下方的Form Properties中增加name和password兩個屬性.
?
n??????? 創建Action
?????? 在完成上面的創建后,我們接下來創建Action類. 在源代碼窗口中切換到struts-config.xml文件,點擊左側工具欄中的.?在彈出的創建向導中輸入Use case名字為Login.
?????? 在對話框的下部Optional Details中,點擊Name行末的Browse按鈕,選中我們剛才創建的loginForm.
點擊Input Source行末的Browse按鈕,在彈出的對話框中選中index.jsp.
將Optional Details標簽切換到Forwards,點擊Add按鈕增加一個局部的Forward.
這里的success是我們給Forward的名字,你也可以使用其它你喜歡的名字. 增加后如下:
完成新建Action的設置后如下圖:
點擊Finish按鈕后,MyEclipse會為我們創建一個名叫LoginAction.java的文件,我們可以根據自己的需要來實現具體的驗證邏輯. 這里,我們僅僅通過登陸的名字是否為hello來判斷. 如果不是提示登陸失敗. 代碼參考如下:??
????????????? ActionMessages errors=new ActionMessages();
?????????????
????????????? LoginForm loginForm = (LoginForm) form;???????
????????????? String username=loginForm.getName();
?????????????
????????????? if(username.equals("hello")) {
???????????????????? return mapping.findForward("success");
????????????? } else {
???????????????????? errors.add("username",new ActionMessage("error.msg"));
???????????????????? saveErrors(request,errors);
???????????????????? return (new ActionForward(mapping.getInput()));
????????????? }
從上面的代碼中我們可以看到,當用戶登陸失敗后會使用一個鍵值為error.msg的ActionMessage. 因此,我們在Package Explore中找到ApplicationResources.properties文件并雙擊打開,輸入以下內容并保存.
error.msg=Login Failed
在完成了上述所有的工作后,我們可以看到圖示化的struts-config.xml如下:
n??????? 部署和測試應用程序
這里StrutsDemo的部署同其他的Web應用程序一樣,我們就不在贅述了,具體的方法可以參閱MyEclipse系列文章的第二篇Web項目的開發.
部署成功后,在IE的地址欄中輸入http://localhost:8080/hello/index.jsp并回車.
我們首先驗證登陸失敗的場景. 當我們輸入的用戶名不是hello時,應返回到登陸頁面并提示登陸失敗. 在Name中輸入abcd,點擊Submit按鈕.
我們可以看到又回到了登陸頁面,并且出現了Login Failed的提示信息. 修改用戶名為hello,然后點擊Submit按鈕.
完.
?????? 以一個很簡單的 Web 應用來說明使用 MyEclipse 的 Web 服務器配置,應用部署和調試過程。??????
? 一、準備開發工具???????
???????? 這里使用 Eclipse 3.1.2 和 MyEclipse4.1.1 ,當然 Java 通常都是用來開發網絡應用的,那么 Web 服務器也就少不了了,這里使用tomcat5.0版本,當然如果你沒有 J2SDK 那么所有的程序都沒法編譯運行了,所以,你也去準備一個吧,這里使用 J2SDK 1.5.0_06-b05 ,上,就無所謂,我們就可以使用所有的功能。??????????????
下載地址:???????
http://www.inspiresky.com/bbs/dispbbs.asp?boardID=13&ID=6356&page=1 ?????? http://www.inspiresky.com/bbs/dispbbs.asp?boardID=13&ID=3889&page=1 ?????? http://java.sun.com ?????? http://www.eclipse.org ?????? http://www.apache.org
http://www.myeclipseide.com/ContentExpress-display-ceid-10.html??????
里面有 MyEclipse 的注冊碼,這里提供的僅供個人學習研究使用,公司用戶請自行購買序列號。???????
二、軟件的安裝和注冊??????????????
????? 首先要安裝 JDK ,我這里使用默認安裝,目錄所有的都不改變, C:\Program Files\Java ,下面有兩個文件夾,一個是 jdk ,一徑之類的,請去網上查找相關資料吧,那個很多文章講了。
??????? Tomcat 的安裝,我們使用 Exe 版本的安裝文件,除了選擇目錄外,其他的都默認好了,這里安裝到 D:\Tomcat5.5 ,注意中間為有時候有空格會很麻煩。
??????? Eclipse 的安裝比較方便,直接解包就行了,然后把解開的文件 Eclipse 文件夾放置到適當的安裝目錄,如這里是 D:/eclipse 。 pse.exe 文件,啟動 Eclipse ,設置 JDK 和工作路徑后就可以看到 Eclipse 的歡迎頁面了。這里我們不使用 Eclipse ,所以,把它關閉 ?????? ?????? MyEclipse 是一個 Exe 安裝文件,有安裝向導,直接雙擊安裝,選擇完 Eclipse 安裝目錄 D:/eclipse 和自身的安裝目錄,這里使用 pse ,然后一路 next 就行了。 ?????? ?????? 我們在程序組中可以找到 MyEclipse 程序組,點擊打開,如果你沒有默認的工作路徑,選擇一個工作路徑后,會看到集成 e 的典型界面。 ?????? 最后需要輸入 MyEclipse 的注冊碼,打開菜單 window->preferences ,在對話框的菜單樹中打開 MyEclipse->Subscription 項, n … 按鈕,然后輸入注冊用戶名和密碼即可。 ?????? OK ,到這里所有需要的軟件都安裝好了,下面我們來創建一個簡單的工程來說明 MyEclipse 的應用。
?????? 三、創建 Web 工程
????? 由于這里只講解 MyEclipse 的基本操作和設置,所以,就不做很復雜的項目了,完全可以觸類旁通的。
??????? 打開 MyEclipse 開發界面, File->New->Projects … ,打開新建項目對話框,選中 MyEclipse->J2EE Projects->Web Project ,點 Project Details 的 Projects Name 中輸入 WebTest ,其他采用默認值,注意這里的 Context root URL 為 /WebTest ,否則,你就要在 IE 才能使用了。注意這里的最下面有是否加入標簽庫支持,我們選擇 JSTL1.1 。然后,點擊 Finish 按鈕完成項目創建。
??????? 我們察看我們新建的工程,需要的類都已經自動加載了進來,還有一個 J2EE 的類環境變量,這就是使用 MyEclipse 的方便之?
?????? 四、新建 Hello 類 ?????? 選中工程項目 WebTest 下的 src 文件夾(注意是在 Package Explorer 下,如果這個找不到,去找 Eclipse 使用指南看吧, Window kage Explorer ),右鍵菜單 New->Package ,新建一個包 com.inspiresky.bean 。選中新建的包,右鍵菜單 New ->Class , Name 中輸 static void main 選項,其他全部默認,點擊 Finish 按鈕完成類的創建。
編輯類的代碼,如下所示:
?package com.inspiresky.bean;
/* * Junsan * http://www.inspiresky.com/bbs */
public class Hello
{ private String message = "Hello World";
/** * @return Returns the message. */
public String getMessage()
{ ????????return message; }
/** * @param message The message to set. */
public void setMessage(String message)
{ ????????this.message = message; } }???????
??????? 注意這里 Bean 屬性的操作方法,可以先定義好屬性,然后,在編輯窗口右鍵菜單 Source->Generate Getters and Setters 框中選擇要生成 get 和 set 方法的屬性確定就可以了
?????? 五、創建 JSP 頁面
??????? 在 WebTest 工程中,選中 WebRoot 文件夾,右鍵菜單 New->JSP , File Name 修改為 index.jsp ,其他默認,點擊 Finish 按
??????? 編輯 JSP 文件的內容如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<jsp:useBean id="hello" class="com.inspiresky.bean.Hello" scope="page"/>
<jsp:setProperty name="hello" property="message" value="Hello World!"/>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
? <head>
??? <base href="<%=basePath%>">
???
??? <title>My JSP 'index.jsp' starting page</title>
???
?<meta http-equiv="pragma" content="no-cache">
?<meta http-equiv="cache-control" content="no-cache">
?<meta http-equiv="expires" content="0">???
?<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
?<meta http-equiv="description" content="This is my page">
?<!--
?<link rel="stylesheet" type="text/css" href="styles.css">
?-->
? </head>
?
? <body>
? <jsp:getProperty name="hello" property="message" /><br>
??? This is my JSP page. <br>
? </body>
</html>
注意紅色部分為我們添加的代碼。好了我們的代碼已經編寫完畢了。
??????? 六、配置 Tomcat 服務器
??????? Eclipse 菜單, Window->Preference… ,打開 Preference 對話框,找到菜單樹中 MyEclipse->Application Servers->Tomcatat 5 項,在對話框中,選中 Enable 單選按鈕,然后點擊 Tomcat Home Directory 輸入框后的 Browse 按鈕,選擇 Tomcat 的安裝根目 omcat5.5 ,其它的框會自動填充。點擊 Apply 按鈕。 ?????? 選中 Tomcat 5 中的 JDK 一項,這里要特別注意,默認的是 JRE 的運行環境,這里要設定成 JDK 的,否則, MyEclipse 無法正常
也無法正常運行 Tomcat 服務器。
?????????????? 我們點擊 Add 按鈕, JRE Name 中寫入 JDK1.5.0_06 ,然后在 Browse 選擇框中選擇 JDK 的根目錄,這里是 C:\Program Files\Java\jdk1.5.0_0 6 ,其他的默認,點擊 OK 按鈕。在 Tomcat JDK Name 中選擇我們剛才創建的那個,就是 JDK1.5.0_06 。點擊 Apply 按鈕,每次都點 e 出問題,你不點這個跑到另一個配置頁面就會丟失上面的配置。
??????? 我們在 Tomcat 5 的 Launch 中確保選中了 Debug 模式。
??????? 而 Paths 中就是一些類路徑設置,第一個是提前加載的類路徑,有些包一啟動服務器初始化 Web Application 時就要用到第二個是運行時才用到的;第三個是沒有打包的類,這里我們就不管了。
??????? 現在可以點擊 preference 對話框的 OK 按鈕了,完成 Tomcat 的配置。 ?????? 七、部屬 Web 應用程序
??????? 這里就簡單點了,我們選中 WebTest 工程的根目錄,右鍵菜單 MyEclipse->Add and Remove Projects Deployments… ,確保 Projects 為 WebTest ,點擊 Add 按鈕,在彈出對話框的 Server 中選擇 Tomcat 5 ,下面的兩個單選項, Exploaded Archive 和分別是目錄方式部屬和包方式部屬,這個都是由 MyEclipse 來做的,我們使用目錄部署方式,不用打成 war 包,其他的不管它了鈕回到上一個頁面。
??????? 服務器指定了,下面來部署應用程序。選中對話框服務器列表中的 Tomcat 5 項,此時,灰顯的按鈕變為可用,其中 Remove 是移除部署和重新部署,我們點擊 Redeploy 按鈕,以后我們修改了工程也可以點此按鈕重新部署。這里我們可以點擊一下了。
??????? OK ,程序已經部署完成了,下面要運行調試了。
??????? 八、運行調試程序?
?????? 在 Eclipse 的圖形菜單欄找到(這個按鈕左邊那個是重新部署按鈕,右邊是自掉的瀏覽器),點擊下拉按鈕,后點擊 Start 菜單,啟動 Tomcat 。 ?????? ?????? 等 Consol 窗口中提示 Tomcat 啟動成功,我們就可以運行我們的程序了。打開一個 IE 瀏覽器窗口,輸入 http://localhost:8080/WebTes t/ ,我們可以看到如下信息:
??????? Hello World!???
???? This is my JSP page. 說明運行成功。
1.新建一個"swt/jface"項目
2.新建designer application Window文件
3.在可視界面加入MenuBar
4.再加入一個SubMenu名為File
5.分別加入兩個Menuitem 取名分別為OPen 和Quit
6.導入一個文本Text,并且Lines為Multi
7.分別雙擊OPen?與Quit ,這樣就注冊了事件處理方法"WidgetSelected"的SelectionListener監聽器.出現如下代碼.
8.分別加入代碼:
??openMenuItem.addSelectionListener(new SelectionAdapter() {
???public void widgetSelected(final SelectionEvent e) {
????FileDialog fd = new FileDialog(shell, SWT.OPEN);
????String s = fd.open();
????if (s != null && !s.equals("")) {
?????FileReader fr;
?????try {
??????fr = new FileReader(s);
??????BufferedReader br = new BufferedReader(fr);
??????String s1 = br.readLine();
??????while (s1 != null) {
???????text.append(s1 + "\n");
???????s1 = br.readLine();
??????}
??????br.close();
??????fr.close();
?????} catch (IOException e1) {
??????e1.printStackTrace();
?????}
????}
???}
??});
??quitMenuItem.addSelectionListener(new SelectionAdapter() {
???public void widgetSelected(final SelectionEvent e) {
????shell.close();
???}
??});
9.運行結果如下:
1.先安裝SWT Designer插件.
2.新建SWT/JFace項目
3.在可視窗口中Design中,進行增加如下組件.
4.各選中文本組件在Events屬性中選中事件處理類型verity->text 并雙擊后面區域,這樣將到它進行監聽注冊.
5.選中事件處理類型Selection->widgetselected并雙擊后面區域,這樣將到它進行監聽注冊.
6.雙擊提交后進入代碼編輯界面,輸入代碼:
??button.addSelectionListener(new SelectionAdapter() {
???public void widgetSelected(final SelectionEvent e) {
????
????String sname = name.getText();
????String spwd = pwd.getText();
????try {
?????Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
?????Connection con = DriverManager.getConnection(
???????"jdbc:odbc:test", "", "");
?????Statement stmt = con.createStatement();
?????ResultSet rs = stmt
???????.executeQuery("select * from userid where name='"+sname+"'and psw='"+spwd+"'");
?????if (rs.next()) {
??????MessageDialog.openInformation(shell, "",
????????"謝謝你的登錄!你是合法用戶!");
?????} else {
??????MessageDialog.openInformation(shell, "",
????????"請你正確登錄!用戶名或密碼不正確!");
?????}
?????rs.close();
?????stmt.close();
?????con.close();
????} catch (Exception e1) {
?????e1.printStackTrace();
????}
???}
??});
7.運行如下:
8.如下為數據庫設計,當然要在這個項目之運行之前設計好!
對新手一定是絕好的教程哦
目錄列示器
本實例演示如何得到一個目錄下的所有文件列表 .
1.?????? 這里利用了 DirFilter 實現了 FilenameFilter 接口 , 因此必須繼承 accept 的方法 .
2.?????? 用到了匹配字符序列與正則表達式指定模式的類 Matcher,Pattern 所以要 java.util.regex 引入 .
實例程序
:
package javaio;
import java.io.*;
import java.util.*;
import java.util.regex.*;
public class DirList {
? public static void main(String[] args) {
? ??File path = new File("c:/");
??? String[] list;
??? if(args.length == 0){
????? list = path.list();
??? }
??? else{
????? // 這里將輸入的參數作為過濾因子
????? list = path.list(new DirFilter(args[0]));
??? }
??? for(int i = 0; i < list.length; i++){
????? System.out.println(list[i]);
??? }
? }
}
class DirFilter implements FilenameFilter {
?
private Pattern pattern;
? public DirFilter(String regex) {
??? pattern = Pattern.compile(regex);
? }
? public boolean accept(File dir, String name) {
??? // 判斷名為 name 的文件是不是符合過濾條件
??? return pattern.matcher(new File(name).getName()).matches();/*matches() 嘗試將整個區域 / 與模式匹配。 new File(name).getName() 得到 String 類的 name*/
? }
}
運行結果 :
本實例演示 util 包中類 Calendar 的使用
Clendar 類是一種日期處理類 , 可以想像它是一個掛在墻壁上的典型日歷 , 有許多日期和頁數翻閱 .
1.?????? Clendar 類的變量域的概念 . 每個元素都是域 , 并且這些域在 Clendar 類中表現為靜態變量 . 這些變量域 , 可能通過 get/set 類方法獲得或者設置域值 .
[Calendardemo.java
代碼
]:
import java.util.*;
public class Calendardemo {
?????? public static void main(String[] args) {
????????????? // 創建一個日歷對象
????????????? Calendar calendar = Calendar.getInstance();
????????????? // 用當前時間初始化日歷對象
????????????? calendar.setTime(new Date());
????????????? String year = String.valueOf(calendar.get(Calendar.YEAR));
????????????? String month = String.valueOf(calendar.get(Calendar.MONTH) + 1);
????????????? String date = String.valueOf(calendar.get(Calendar.DAY_OF_MONTH));
????????????? String day = String.valueOf(calendar.get(Calendar.DAY_OF_WEEK) - 1);
????????????? int hour = calendar.get(Calendar.HOUR);// 以 12 小時制
????????????? int hour_1 = calendar.get(Calendar.HOUR_OF_DAY);// 以 24 小時制
????????????? int minute = calendar.get(Calendar.MINUTE);
????????????? int second = calendar.get(Calendar.SECOND);
????????????? // 輸出結果
????????????? System.out.println("year=? " + year);
????????????? System.out.println("month=? " + month);
????????????? System.out.println("date=? " + date);
????????????? System.out.println("day=? " + day);
????????????? System.out.println("hour=? " + hour);
????????????? System.out.println("hour1=? " + hour_1);
????????????? System.out.println("minute=? " + minute);
????????????? System.out.println("second=? " + second);
????????????? System.out.println(" 現在時間是: ");
????????????? System.out.println(" " + year + " 年 " + month + " 月 " + date + " 星期 " + day);
????????????? calendar.set(1983, 7, 21);// 將日歷翻到某個時間. 7 表示八月
????????????? long time1983 = calendar.getTimeInMillis();// 返回當前時間,作為從開始時間的 UTC 毫秒值
????????????? calendar.setTime(new Date());// 將日歷翻到現在這個時間.
????????????? long time2006 = calendar.getTimeInMillis();
????????????? long interdays = (time2006 - time1983) / (1000 * 60 * 60 * 24);
????????????? System.out.println(" 現在和 1983.8.21 相隔 " + interdays + " 天 ");
?????? }
}
注意
:
應該以靜態方式訪問靜態字段
Calendar.year
運行結果
:
插件介紹:
??? SQLExplorer是Eclipse集成開發環境的一種插件,它可以被用來從Eclipse連接到一個數據庫。SQLExplorer插件提供了一個使用SQL語句訪問數據庫的圖形用戶接口(GUI)。通過使用SQLExplorer,能夠顯示表格、表格結構和表格中的數據,以及提取、添加、更新或刪除表格數據。SQLExplorer同樣能夠生成SQL腳本來創建和查詢表格。所以,與命令行客戶端相比,使用SQLExplorer可能是更優越的選擇。
安裝條件:
eclipse-SDK-3.1.2-win32?
http://mirrors.nsa.co.il/eclipse/eclipse/downloads/drops/R-3.1.2-200601181600/eclipse-SDK-3.1.2-win32.zip
Microsoft SQL Server 2000 Driver for JDBC Service Pack 3?(microsoft 微軟官方 sqlserver2000 jdbc驅動)安裝
SQLExplorer_2.2.4
http://puzzle.dl.sourceforge.net/sourceforge/eclipsesql/net.sourceforge.sqlexplorer_2.2.4.zip
一、安裝SQLExplorer插件
????在這里用link方式來安裝SQLExplorer插件,將下載下來的net.sourceforge.sqlexplorer_2.2.4.zip包,解壓縮到比如D:\eclipseplugins目錄,將net.sourceforge.sqlexplorer_2.2.4目錄重新命名為:sqlexplorer_2.2.4目錄,改成如下目錄結構:D:\eclipseplugins\sqlexplorer_2.2.4\eclipse\plugins\net.sourceforge.sqlexplorer_2.2.4,然后在比如:D:\eclipse-SDK-3.1.2\links新建一個sqlexplorer_2.2.4.link文件,這文件指向sqlexplorer_2.2.4插件所在的目錄,也就是D:\eclipseplugins\sqlexplorer_2.2.4目錄,重新啟動Eclipse,就可以看到sqlexplorer插件了,若沒看到,請在eclipse啟動參數加上參數-clean,即eclipse.exe -clean,就可以了!如圖
在Eclipse中“Window->preferences...“檢查sqlexplorer是否安裝成功,
二、使用SQLExplorer插件
??? SQLExplorer通過JDBC連接數據庫的,包括Oracle、SQLServer、MySQL等流行的關系數據庫,因此為了便于加深理解和使用,本例子建立一個從Eclipse到SQL Server2000數據庫的JDBC連接,接著將在SQLExplorer圖形SQL客戶端提取和顯示示例數據。
??? 上一節介紹了安裝SQLExplorer,接下來在使用SQLExplorer前需要配置,啟動Eclipse后,打開SQLExplorer視窗,在Eclipse中集成環境中單擊”Open perspective“->”Other...“按鈕來打開一個視窗,選擇SQLExplorer插件,如圖:?
就將看到SQLExplorer視窗顯示在Eclipse左邊中,Drivers標簽顯示了不同的數據庫驅動,它們用來連接不同的數據庫,現在可用的數據庫包括DB2、Oracle、Sybase、HSQLDB、SQLServer和PostgreSQL,針對SQLServer來配置SQLExplorer,為了配置SQLServer驅動,右擊Microsoft MSSQL Server JDBC Driver結點,并且選擇 Change the selected Driver,如圖
在 Modify driver框中,選擇 Extra Class Path 標簽,并且單擊 Add 按鈕將SQLServer驅動.jar文件添加到類路徑中,下圖顯示將SQLServer的JDBC驅動加到 Eclipse 的類路徑中。將 Driver 欄中的Example?URL改成jdbc:microsoft:sqlserver://server-name:1433,這里的server-name指的是SQLServer服務器名稱,比如連接本地數據庫改成jdbc:microsoft:sqlserver://localhost:1433即可。
底下的Driver Class Name不需要改,采用默認值即可,如圖
若要連接MS SQL Server數據庫并提取其中的表格,需要為連接建立一個別名,一個連接的別名說明了連接設置,JDBC驅動、URL、用戶名和密碼。在SQLExplorer視窗中選擇 Aliases 標簽,單擊“Create new Aliases”按鈕來創建一個新的別名,如圖
在“Create new Aliases”框中,指定一個別名,選擇“Microsoft MSSQL Server JDBC Driver”來為MS SQL Server數據庫創建一個別名。在 URL 域中指定數據庫的連接 URL,如:jdbc:microsoft:sqlserver://localhost:1433,下圖展示了MS SQL Server別名的設置,
以上操作將一個MS SQL Server別名加入到 Aliases標簽中,如圖所示,若要修改一個別名,右鍵點擊別名結點并選擇“Change the selected Alias.”
MS SQL Server別名用來連接到 SQL Server數據庫并且從中提取數據,要打開數據庫連接,右擊MS SQL Server別名結點并選擇“Open...”,如圖
在 Connection框中,指定登錄到 SQL Server數據庫使用的用戶名和密碼,然后點擊“OK”按鈕,下圖展示了登錄的設置,缺省情況下,對于 sa用戶不需要密碼
一個與SQL Server數據庫的JDBC連接建立起來了,一旦連接上了,Eclipse就會顯示SQL Server數據庫中不同的數據庫模式,如圖
以上完成了對 SQL Server數據庫的配置和連接了。
對其他數據庫的支持
這個JDBC連接的例子是關于配置與SQL Server數據庫連接的,通過在 Drivers標簽中為數據庫選擇合適的驅動,可以配置與其他數據庫的JDBC支持,只需為選定的數據庫指定驅動類和連接URL,就可以配置與該數據庫的JDBC連接,以下列出的是其他數據庫的驅動類、連接URL和.jar文件。
DB2
Driver Class:com.ibm.db2.jdbc.app.DB2Driver
Connetion URL:jdbc:db2:<database>
Driver .jar/.zip:db2java.zip
Sybase
Driver Class:com.sybase.jdbc2.jdbc.SybDriver
Connetion URL:jdbc:sybase:Tds:<host>:<porl>/<database>
Driver .jar/.zip:jconn2.jar
Oracle
Driver Class:oracle.jdbc.driver.OracleDriver
Connetion URL:jdbc:oracle:thin:@<host>:<porl>:<sid>
Driver .jar/.zip:classes12.zip
PostgreSQL
Driver Class:org.postgresqlDriver
Connetion URL:jdbc:postgresql://<server>:<port>/<database>
Driver .jar/.zip:postgresql.jar
MySQL
Driver Class:com.mysql.jdbc.Driver
Connetion URL:jdbc:mysql://<server>:<port>/<database>
Driver .jar/.zip:mysql-connector-java-
以上列表中,<database>是指數據庫實例,<port>是數據庫連接端口,<sid>是數據庫的SID,<server>是數據庫服務器。
訪問數據庫數據
現在我們將從示例庫pubs中的示例表employee提取數據,如果是從一個命令行SQL客戶端訪問數據庫,則使用如下命令來提取數據:
SQL>SELECT * FROM employee
這將以文本表的形式顯示數據,使用圖形SQL客戶端SQLExplorer,數據將以結構表的形式顯示,SQLExplorer同樣也會生成創建表和從中提取數據的SQL腳本,如果使用DESC命令在一個命令行客戶端中顯示表格的結構,只有列名、列數據的類型、列數據的長度大小以及非空的值會被顯示,有了SQLExplorer,索引、主鍵和外鍵值都會被顯示
在Eclipse的SQLExplorer視窗中選擇Database Structure View標簽,為了顯示表employee的結構,在Database Structure View中選擇“Database->pubs->TABLE->employee”結點,下圖顯示了表employee的結構,
為了顯示選中的表格中的數據,請選擇 Preview 標簽。圖中顯示了表 employee中的數據。關于表格的其他的信息分別在 Indexes, Primary Key, Foreign Key 和 Row Count 標簽中顯示。
若想得到創建表格的 SQL 腳本,右擊表結點并且選擇“ Create Table Script”,如圖所示,
如下圖所示,這將生成創建被選表格的SQL腳本,并將其顯示在SQLExplorer視窗中的SQL Editor中
Database Structure View的“Preview”標簽中的數據是使用缺省的 Select 查詢提取的,它包括了表格中所有的列。要想顯示缺省的 Select 查詢語句,右擊表結點并且選擇“Generate Select in Sql Editor”,如圖所示
下圖所示,SQL Editor中顯示了從表employee中提取數據的缺省查詢語句。注意:顯示在 SQL Editor 中的 SELECT 查詢語句的結尾沒有分號(;)
通過以上SQL Editor可以運行select語句,同樣也可以運行update語句、delete語句等,都可以比較好執行程序。
通過在 Eclipse 中配置 SQLExplorer 插件,該集成開發環境獲得了圖形用戶界面(GUI)較之命令行客戶端的許多優點。
對SQLExplorer 插件感興趣的開發人員可以試一試,相信對您有很大的幫助!
總結
例子中,我們與MS SQL Server?數據庫建立了一個 JDBC 連接,并訪問其中的一個示例數據庫。SQL Explorer 同樣可以被用來配置與其他數據庫的連接,包括 DB2, Sybase, Oracle, HSQLDB, SQL Server 和 PostgreSQL。
注意:在一開始要確保,sql2000與jdbc驅動都能正常運行! 可以先用dos: telnet localhost 1433 測試下1433端口是否可用.
??? JDBC是Java DataBase Connection的簡稱,是一種用java實現的數據庫接口技術,是開放數據庫ODBC的java實現.這里我要說的是JDBC連接sql2000中的一些問題.
SQL2000配置
1.安裝好sql2000,啟動后,進dos命令 telnet localhost 1433 測試一下sql2000接口端口能否可用,如果進入了全黑的界面,那就恭喜你了,sql2000傳輸端口可用! 否測出現?...不能打開主機的連接,在端口1433:連接失敗? 則要給sql2000打補丁了.
2.先安裝sql2000 sq3, 再安裝sql2000 sq4?.(各約50M)重啟后 測試端口OK!!!
JDBC驅動配置
3.下載并安裝Microsoft SQL Server 2000 Driver for JDBC Service Pack 3??(2.29M)?
Eclipse 平臺配置
4.新建一個Java項目 Connect_demo 下一步界面中選擇庫->添加外部JAR->添加msbase.jar;mssqlsever.jar;mstil.jar三文件(在jdbc的安裝目錄lib中可以找到!)OK進入下一步.確定.
5.新建類ConnectAccess.java 寫入代碼:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ConnectAccess {
?public static void main(String[] args) {
try{
?Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
?Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs","sa","");
?Statement stmt =con.createStatement();
?ResultSet rs =stmt.executeQuery("select fname,minit,lname? from employee");
?while (rs.next()){
?System.out.print("\t fname:"+rs.getString(1));
?System.out.print("\t minit:"+rs.getString(2));
?System.out.print("\t lname:"+rs.getString(3));
?System.out.println();
?}
?rs.close();
?stmt.close();
?con.close();
?}catch(Exception e){
?e.printStackTrace();
}
?}
}
6.保存ConnectAccess.java并運行于java應用程序.
7.OK成功了!!