?

基于java數據庫技術實現用戶注冊與登錄界面

2014-03-16 06:23謝文蘭
關鍵詞:用戶名驅動程序語句

謝文蘭

(廣東培正學院 計算機科學與工程系,廣州 510830)

基于java數據庫技術實現用戶注冊與登錄界面

謝文蘭

(廣東培正學院 計算機科學與工程系,廣州 510830)

基于java數據庫技術實現了一個用戶登錄與注冊的界面.介紹了java數據庫連接技術,比較了各種連接方式的優缺點.分析了在代碼實現時遇到的問題,并提出了解決方法,最終完成了用戶注冊與登錄的功能.

JDBC技術;JDBC-ODBC;SQL語句

0 引 言

目前在人們的生活里離不開各種各樣的用戶注冊與登錄.我們使用QQ聊天時,必須先登錄QQ,如果沒有QQ號時,那我們則要先去注冊,擁有一個QQ號和相應的密碼才能登錄.如果想使用一個網站的資源,則必須先注冊成為該網站的新會員,然后再登錄該網站使用資源.如果要進入到一個系統,那你必須有通行證,這個通行證就是要有進入這個的系統的用戶名和密碼.如果沒有,那也必須先注冊成為該系統的用戶,然后再登錄系統.一般說來,用戶注冊就是在管理者的數據庫的用戶表里增加一個新的用戶名和密碼,用戶登錄則是在登錄界面中輸入用戶名和密碼,然后點擊“登錄”按鈕提交信息.數據庫會檢查它的用戶表里是否存在這樣的一個用戶名,密碼是否正確.然后根據各種情況返回給用戶相應的信息.

本文介紹了java數據庫的各種連接技術,比較了各種連接方式的優缺點.并且基于java數據庫技術實現一個用戶登錄與注冊的界面.

1 java數據庫連接技術

Java數據庫連接技術的簡稱是JDBC,它提供連接各種常用數據庫的能力.JDBC程序的工作原理如圖1[1].

1.1 JDBC API

提供者:sun公司

內容:供程序員調用的接口與類,集成在java.sql和javax.sql包中.

DriverManager:依據數據庫的不同,管理JDBC驅動

Connection:負責連接數據庫并擔任傳送數據的任務

Statement:由Connection產生、負責執行SQL語句

ResultSet:負責保存Statement執行后所產生的查詢結果

1.2 JDBC Driver Manager

提供者:sun公司

作用:載入各種不同的JDBC驅動

1.3 JDBC 驅動

提供者:數據庫廠商

作用:負責連接各種不同的數據庫

圖1 JDBC的工作原理

2 驅動程序的各種類型

JDBC驅動將SQL語句轉化為一種特定數據庫可解釋的形式,也可以檢索SQL語句的結果并將結果轉化為等效JDBC API類對象.JDBC驅動程序只考慮與數據庫之間的訪問,其對數據庫的任何變化不會影響到應用程序.JDBC支持以下幾種類型的驅動程序[2].

2.1 JDBC-ODBC橋驅動程序

這種驅動將JDBC調用轉換為ODBC的調用.使用JDBC-ODBC進行橋接,分為兩個步驟:

①在控制面板——ODBC 數據源——系統DSN中配置數據源.

②編程,通過橋接方式與數據庫建立連接.

優點:可以訪問所有ODBC可以訪問的數據庫,實現比較簡單,適用于初學者.

缺點:功能不夠強大.

2.2 JDBC本地API驅動

這種類型的驅動程序將JDBC調用轉換為對數據庫客戶端API的調用.

①下載數據庫廠商提供的驅動程序包.

②將驅動程序包引入工程中.

優點:創建于各數據庫特有的客戶端函數庫之上,為此其執行性能比較好.

缺點:兼容性差.

2.3 網絡協議驅動

這種驅動先將JDBC調用轉換為DBMS-independent網絡協議,然后由服務器端的中間件轉換為具體數據庫服務器可以接收的網絡協議.

優點:100%java,擴展性好,兼容性好.

缺點:在同等條件下,這種類型的數據庫驅動程序其執行性能沒有專屬JDBC驅動程序好.

2.4 編程

通過純Java驅動方式與數據庫建立連接 .

優點:100%java,快又可跨平臺,擴展性好,兼容性好.

缺點:訪問不同的數據庫需要下載專用的JDBC驅動,對于初學者來說比較復雜.

3 用戶注冊與登錄界面的功能設計

本文中設計的用戶注冊界面如圖2所示,包含用戶名和兩次密碼的輸入,點擊注冊按鈕時,會出現如下幾種情況:

①用戶名或者密碼為空時,會彈出消息框提示輸入的信息不完整,請重新輸入.

②兩次輸入的密碼不一致時,會彈出消息框提示密碼輸入不一致,請重新輸入.

③當輸入的用戶名在數據庫的用戶表里已經存在時,會彈出消息框提示用戶名已經存在,請重新輸入.

④當輸入新的用戶名和兩次一致的密碼時,會彈出消息框提示用戶名注冊成功,同時在數據庫的用戶表里添加相應的用戶名和密碼.

用戶注冊界面如圖3所示,功能包含用戶名和密碼的輸入,點擊登錄按鈕時,會出現如下幾種情況:

①用戶名或者密碼為空時,會彈出消息框提示輸入的信息不完整,請重新輸入.

②當輸入的用戶名在數據庫的用戶表中不存在時,會彈出消息框提示用戶名不存在,請重新輸入.

③當輸入的用戶名在數據庫的用戶表中存在,但輸入的密碼與用戶表的密碼不一致時,會彈出消息框提示密碼不正確,請重新輸入.

④當輸入用戶名和密碼正確時,會彈出消息框提示用戶名登錄成功,同時進入到相應的系統中.

圖2 注冊界面

圖3 登錄界面

4 部分關鍵代碼的實現及實現過程中容易出現的問題

本文要實現的數據庫功能不是很復雜,所以選用了使用簡便的Access數據庫系統,驅動方式JDBC-ODBC橋驅動程序.數據庫的名字為user,里面有一張用戶表,用戶表中包含用戶名和密碼兩個字段.

4.1 部分關鍵代碼的實現

數據庫的驅動和連接代碼如下:

當點擊注冊時,消息處理代碼如下:

注冊時,如果輸入的用戶名在用戶表已經存在,則會提示用戶名已經存在,請重新輸入.如果輸入了一個新的用戶名,而且兩次密碼都一致時,需要在數據庫的用戶表中添加相應的用戶名和密碼.

登錄的代碼這里就不再詳述了.

4.2 代碼實現時容易出現的問題

本文在實現注冊和登錄的功能時,最容易出現的問題往往是SQL語句的編寫.

其中,當查詢用戶名在用戶表中是否存在時,SQL語句寫成“select用戶.*from用戶where用戶名=userName”.當需要往用戶表里添加新的記錄時,SQL語句寫成“insert into用戶(用戶名,密碼)vulues(userName,password1)”.則在運行過程中會出現如圖4所示的錯誤.

圖4 運行錯誤界面

運行提示的錯誤是找不到相應的數據源,但是數據庫已經連接上,所以不應該是找不到數據庫的問題.經分析,最終確定錯誤是出現在SQL語句上.SQL語句出現的userName和password1為變量名,本文需要把變量名所表示的內容賦給字段名.

當把查詢語句改為“select用戶.*from用戶where用戶名=”+“'”+userName+“'”,添加語句改為insert into用戶(用戶名,密碼)values(“+”'“+userName+”'“+”,“+”'“+password1+”'“+”)“時,運行就沒有出現錯誤了,并且在數據庫的用戶表中成功的添加新的用戶名和密碼以及根據用戶名和密碼查詢到相應的記錄.

5 結束語

本文基于java數據庫技術,實現了java代碼與ACCESS數據庫相連接,完成了最基本的用戶注冊與用戶登錄的功能.同時,本文還介紹了java數據庫連接技術,比較了各種連接方式的優缺點.分析了在代碼實現時遇到的問題,并提出了解決方法,最終完成了用戶注冊與登錄的功能.由于在本文中,數據庫的訪問不是很頻繁,只需要在訪問數據庫時創建一個連接,用完后就關閉它,這樣做不會明顯的增大系統的開銷.但是對于一個復雜的數據庫系統,頻繁的建立、關閉數據庫,會極大的降低系統的性能,增大系統的開銷,嚴重時會造成服務器的崩潰[3][4].如何采用運行速度更快、數據庫訪問效率更高的數據庫技術,還需要進一步研究.

[1]耿詳義,張躍平.java2實用教程[M].北京:清華大學出版社,2006.

[2]張白一,崔尚森.面向對象程序設計-JAVA[M].西安:西安電子科技大學出版社,2003.

[3]習 磊,周平安.基于JDBC的數據庫連接池高效管理策略[J].計算機工程與應用,2003(30):203-204.

[4]羅 榮,唐學兵.基于JDBC的數據庫連接池的設計與實現[J].計算機工程,2004,30(9):92-94.

User Registration and Login Interface Based on Java Database Technology

XIE Wen-lan
(Department of Computer Science and Engineering,Peizheng College,Guangzhou 510830,China)

This paper is based on the Java database technology to achieve a user login and registration interface.In this paper,it introduces the Java database connection technology,and compares the advantages and disadvantages of various connection.It analyses the problems encountered in code implementation,solves the problems and completes the user registration and login function finally.

JDBC;JDBC-ODBC;SQL statement

TP37

A

1671-119X(2014)02-0045-04

2014-01-02

謝文蘭(1984-),女,碩士,講師,研究方向:網絡工程.

猜你喜歡
用戶名驅動程序語句
《護士進修雜志》投稿程序
《護士進修雜志》投稿程序
重點:語句銜接
《護士進修雜志》投稿程序
計算機硬件設備驅動程序分析
機智的快遞員
如何搞定語句銜接題
基于MPC8280的CPU單元與內部總線驅動程序設計
作文語句實錄
妙用鼠標驅動
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合