表5-8聊天信息表
字段名
数据类型
是否为空
是否主键
描述
chat_id
int(4)
No
Yes
自动编号
speaker
varchar(20)
Yes
No
listener
varchar(20)
Yes
No
Content
varchar(100)
Yes
No
talkTime
Datetime(8)
Yes
No
第6章 系统详细设计
6.1 数据库连接
实现业务逻辑层与数据库的连接是通过JDBC技术,它是“Java Database Connectivity”的缩写。JDBC由一组用Java语言编写的接口和类组成,是对数据库操作的对象封装,可以实现与数据库的无关性。它以成为一种供数据库开发者使用的标准API。
6.1.1 JDBC的基本功能a.建立与数据库的连接。
b.发送SQL语言。
c.处理数据库操作结果。
6.1.2 JDBC的特点a.与SQL语言的一致性。它允许使用从属于任何DBMS的SQL语言;提供ODBC风格的转义语句;利用DatabaseMetaData接口提供关于DBMS的描述性信息,从而使应用程序能适应每个DBMS。
b.可在现有数据库上实现。
c.提供与其它Java系统一致的界面。这说明开发人员可以采用一致的编程界面来处理数据库编程。
d.简单化。
e.使用静态的通用数据类型。
f.多方法,多功能。
6.1.3 JDBC的驱动类型:a.JDBC-ODBC桥驱动程序。
b.调用本地数据库应用编程接口驱动程序。
c.数据库中间件纯Java驱动程序。
d.直接连接数据库的纯Java驱动程序。
6.1.4将连接数据库的代码封装在一个JavaBean中
DBconn.java代码如下:
package com.soul.struts.tool;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBconn {
private String driver = "sun.jdbc.odbc.JdbcOdbcDriver"; //数据库的驱动
private String url = "jdbc:odbc:mydb"; //URL地址
private Connection conn = null ;
//无参构造器,利用它来加载数据库连接对象
public DBconn() {
try {
Class.forName(driver); //加载数据库驱动
conn = DriverManager.getConnection(url); //加载数据库连接对象
}
catch (Exception e) {
System.out.println("数据库加载失败");
}
}
public Connection getConn() {
return conn;
}
// 关闭数据库结果集
public static void closeRs(ResultSet rs) {
try {
if(rs != null) {
System.out.println("关闭数库结果集");
rs.close();
rs = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
//关闭数据库操作对象
public static void closePstmt(PreparedStatement pstmt) {
try {
if(pstmt != null) {
System.out.println("关闭数库操作对象");
pstmt.close();
pstmt = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
//关闭数库连接对象
public static void closeConn(Connection conn) {
try {
if(conn != null) {
System.out.println("关闭数库连接对象");
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
6.2 系统功能模块的设计与实现
6.2.1 用户注册模块当用户提出注册请求,系统显示用户注册页面,提示用户输入个人信息,用户输入个人信息,系统验证其信息是否符合要求,如果用户输入的个人信息不符合系统要求,则系统显示错误信息并要求用户重新填写个人信息,用户重新填写信息,或者取消注册,注册成功系统将用户信息写入数据库,页面将经一个显示注册成功的页自动进入登录界面。如下图6-1所示:
图6-1 用户注册页面
要实现用户信息验证功能,主要是通过客户端页面上的JavaScript和服务器端验证,例如验证用户输入的用户名在数据库中是否已存在,如果已存在则在提交的时候会给出提示“用户名已存在”,就要求重新注册。客户端页面上的javascript代码如下:
<Script language="javascript">
function checkEmpty(form){
for(i=0;i<form.length;i++){
if(form.elements[i].value==""){
alert("表单信息不能为空!!!");form.elements[i].focus();
return false;
}
}
if(form.user_password.value!=form.user_password1.value){
alert("两次输入的密码不一致,请重新输入!!!"); form.user_password.focus();return false;
}
if (form.user_name.value.length <1) {
alert("用户名要在1-20个字符之间!");
form.user_name.focus();
return false;
}
var pattern = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
if(!pattern.exec(form.em