日期:2014-05-17 浏览次数:20866 次
????? 漫漫学习路,无处是尽头。“技术是学不完的,只能学会学习能力,并不断学习才是真”这句绝对的真理。总结的虽是,斌哥布置的练习,但完成这个练习的过程中,却真心是温习了很多,学习了很多。
????? 进入正题,下面总结下简单账号管理系统的实现过程。
????? 设计如下:
一、表结构
表名: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