中国矿业大学web技术实验报告 - 图文 联系客服

发布时间 : 星期二 文章中国矿业大学web技术实验报告 - 图文更新完毕开始阅读dbc3e0250640be1e650e52ea551810a6f524c8bb

《Web技术》实验报告

user表中存储了用户登录的基本信息,包含了id、name、password、authority四个表头,在这里分别代表用户的ID、用户登录用的用户名、用户登录用的密码、用户的权限(0代表管理员1代表普通用户)。(ID以从0递增的方式确定)。

(2)user_information表

user_information表中存储了用户的个人信息,包含了name、nicheng、age、email、aihao、sex六个表头,在这里分别代表用户名、用户的昵称、年龄、邮箱、爱好和性别。其中爱好用数字表示,0代表无,1代表看电影,2代表聊天,3代表看电影、聊天,4代表唱歌,5代表看电影、聊天,6代表聊天、唱歌、7代表看电影、聊天、唱歌。

(3)record表

38

《Web技术》实验报告

record表中存储了用户的登录信息,包含了id、name、time、times四个表头,其中id代表用户ID,name代表登录用户名、time代表用户的登录时间、times代表用户的登录次数。

3.2.2 DAO模式的设计

DAO(Data Access Objects)设计模式是属于Java EE数据层的操作。 DAO整体结构如下图:

(1)数据库连接类的设计——DataBaseConnection类

该类的功能为连接数据库并获得连接对象以进行后续的操作(增、删、改、查)。

关键代码如下:

package com.javaweb.dao1;

import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;

//数据库连接类

publicclass DataBaseConnection {

privatefinal String DBDRIVER=\;//MYSQL JDBC驱动

privatefinal String DBURL=

\ncoding=UTF-8\;

//数据库地址并设置编码方式

privatefinal String DBUSER=\;//mysql用户名 privatefinal String DBPASSWORD=\;//mysql密码

39

《Web技术》实验报告

private Connection conn=null;//数据库连接对象

public DataBaseConnection(){ try {

Class.forName(DBDRIVER);//加载MYSQL JDBC驱动程序

System.out.println(\);

this.conn=

DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);

//连接数据库 } catch (Exception e) { } }

public Connection getConnection(){//获得数据库连接对象 returnconn; }

publicvoid close(){//关闭数据库 try { } } }

conn.close();

// TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) {

// TODO Auto-generated catch block

System.out.print(\); e.printStackTrace();

其中有三个方法即构造方法、获得连接对象的三个方法、关闭数据库连接的方法;在构造方法中,加载MYSQL JDBC驱动并连接数据库。注意,在编写此类之前,必须将JDBC的jar包放入到Tomcat根目录下的lib文件夹内,并在工程中导入该jar包后才可以运行。

(2)VO类的设计——user类

该类主要是获取一些属性并对一些属性进行赋值。由于set方法和get方法比较简单,这里只列出user类中的属性以及重要的方法。

privateString name=\;//用户名 private String password=\;//密码

privateintauthority=1;//权限

40

《Web技术》实验报告

private String nicheng=\;//昵称 private String age=\;//年龄 private String email=\;//邮箱

private String repassword=\;//重复的密码 private String sex_=\;//性别 private String aihao[]=null;//爱好 privateintaihao_=0;//爱好_字符串

private Maperrors =null;//用于输出错误信息 public String geterrormsg(String key){//返回错误信息 String value=this.errors.get(key); returnvalue==null?\:value; }

public Map geterrors(){//得到错误信息的Map对象 returnthis.errors; }

publicboolean check(intcode){//检测赋值是否合法 booleanflag=true;

if(!this.name.matches(\)){

flag=false; this.name=\;

this.errors.put(\, \用户名只能由数字、字母和下划线组成\); }

elseif((!new

DAOFactory().getuserDAOInstance().query(this.name))&&code==0){

flag=false; this.name=\;

this.errors.put(\, \用户名已经存在\); }

if(!this.password.matches(\)){

flag=false; this.password=\;

this.errors.put(\, \密码太短\); }

if(!this.repassword.equals(this.password)){

flag=false;

this.repassword=\;

this.errors.put(\, \密码不一致\); }

if(this.nicheng==\){

flag=false;

41