日期:2014-05-17 浏览次数:21033 次
????? 漫漫学习路,无处是尽头。“技术是学不完的,只能学会学习能力,并不断学习才是真”这句绝对的真理。总结的虽是,斌哥布置的练习,但完成这个练习的过程中,却真心是温习了很多,学习了很多。
????? 进入正题,下面总结下简单账号管理系统的实现过程。
????? 设计如下:
一、表结构
表名:userinfo
字段信息:id-int
?????????????? name-varchar
?????????????? password-varchar
二、模块结构
?? 1、数据操作模块
?????? 将数据库操作写在一个包下。
public class DAO {
//创建arrylist用以存放查询结果
private ArrayList<Userinfo> al;
/**
* 插入数据到数据库中的方法
*/
public ArrayList<Userinfo> add(Userinfo user){
//获取数据库连接对象
Connection conn=Until.getDBConnect();
//sql操作数据
String sql="insert into userinfo(name,pwd) values('"+user.name+"','"+user.password+"')";
try {
Statement stmt=conn.createStatement();
int i=stmt.executeUpdate(sql);
if(i>0){
System.out.println("插入数据成功!");
}
//关闭数据库连接
conn.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return searchAll();
}
/**
* 查询数据库所有数据
*/
public ArrayList<Userinfo> searchAll(){
al=new ArrayList<Userinfo>();
//获取数据库连接对象
Connection conn=Until.getDBConnect();
//sql操作数据
String sql="select * from userinfo";
try {
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){
Userinfo user=new Userinfo(rs.getInt("id"), rs.getString("name"),rs.getString("pwd"));
this.al.add(user);
}
//清空结果集
rs.close();
//关闭数据库
conn.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return al;
}
/**
* 按给定的id查询数据的方法
*/
public ArrayList<Userinfo> searchById(int id){
//获得数据库连接对象
Connection conn=Until.getDBConnect();
//操作数据
String sql="select * from userinfo where id="+id;
try {
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){
System.out.println("id="+rs.getInt("id")+",name="+rs.getString("name")+",password="+rs.getString(3));
}
conn.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return searchAll();
}
/**
* 删除指定id的数据的方法
*/
public ArrayList<Userinfo> deleteById(int id){
//获取数据库连接对象
Connection conn=Until.getDBConnect();
//操作数据
String sql="delete from userinfo where id="+id;
try {
Statement stmt=conn.createStatement();
int i=stmt.executeUpdate(sql);
if(i>0){
System.out.println("删除成功!!");
}
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return searchAll();
}
/**
* 根据指定id修改数据的方法
*/
public ArrayList<Userinfo> updateById(int id,Userinfo user){
//获取数据库连接对象
Connection conn=Until.getDBConnect();
//数据操作
String sql="update userinfo set name=?,pwd=? where id=?";
try {
//预编译
PreparedStatement ps=conn.prepareStatement(sql);
//设置对象参数
ps.setString(1, user.name);
ps.setString(2, user.password);
ps.setInt(3, id);
int i=ps.executeUpdate();
if(i>0){
System.out.println("数据修改成功!");
}
conn.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return searchAll();
}
}
?
?2、用5个servlet、2个html页面进行页面
5个servlet:Userinfo-用户列表servlet-用于查找并显示所有用户
?????????????????? Deleteservlet-删除操作servlet-用于删除指定用户
?????????????????? Updateservlet-更新操作servlet-用于更新指定用户信息
?????????????????? Regesiterservlet-添加操作(注册)servlet-用于注册新用户
?????????????????? Logincheck-用户身份验证servlet-用于验证登陆用户是否为注册用户
2个html:page.html-登陆页面
?????????????? register.html-注册页面
3、系统各页面交互流程

?4、代码示例
userinfo:
/**显示用户servlet:用于显示当前全部用户信息
* Servlet implementation class Userinfo
*/
public class Userinfo extend