APP下载

基于java数据库技术实现用户注册与登录界面

2014-03-16谢文兰

关键词:用户名驱动程序语句

谢文兰

(广东培正学院 计算机科学与工程系,广州 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单元与内部总线驱动程序设计
作文语句实录
妙用鼠标驱动