数据库基础入门(四)— — 产品功能实现之数据库架构与用户登录注册

本文介绍了如何使用Java进行数据库操作来实现用户管理功能,包括用户登录验证和注册流程。



     技术产品无论是网站还是app,对于有一定的受众的产品来说数据库的应用是不可或缺的。没有数据库就好比一群人在图书馆里看书,大家都光着脚,管理员光靠味觉去捕捉脚臭的罪魁祸首估计有如海底捞针。但有了数据库就不一样了,给了每人一双鞋,这时候想知道谁的脚臭就可以对鞋下工夫了。额… 这例子好恶心。总之,只为说明一点,数据库的作用及其架构无比重要。 
     根据的前几篇博客所例,这个产品主要实现对用户的管理,用户登录,用户注册以及用户的个人信息的完善。先看数据看的 工程架构: 


影音先锋电影 http://www.iskdy.com/ 
     其中的UserInfo包里的表我只是添加了两张:一张Pet表,一张User表。需要注意的是表中的外键,因为外键的值的特殊性,它是由相关联的表的id决定的,所以在声明这个外键时必须用相关表(类)的对象声明引用。 
有了架构,接下来是功能的实现。 
用户登录: 
     用户登录的首要条件是用户名、密码不为空,其次是数据库中存在该用户名,并且密码正确。 
Java代码   收藏代码
  1. /**  
  2.      * 查询用户是否存在,从而判断是否允许登录 
  3.      * @param condition 查询条件 password 对应的密码 
  4.      */  
  5.     public boolean queryMember(String condition,String condition_password){  
  6.             String username = null;  
  7.             String password = null;  
  8.         try{  
  9.             Connection con = this.getConnection();  
  10.             //定义SQL语句  
  11.             String sql2 = "select * from user where username = ?";  
  12.             //获取预编译SQL执行对象,同时检测数据库中是否已经存在该SQL语句,如果存在,不存入SQL语句,如果不存在则存入SQL语句  
  13.             PreparedStatement pstmt = con.prepareStatement(sql2);  
  14.             //给每一个?占位符指定数据  
  15.             pstmt.setString(1, condition);  
  16.             ResultSet rs = pstmt.executeQuery();//执行  
  17.               
  18.             System.out.println("id     username    password    mail");  
  19.             while(rs.next()){//检测是否还有下一条记录  
  20.                 int id = rs.getInt("id");  
  21.                 username = rs.getString("username");  
  22.                 password = rs.getString("password");  
  23.                 String mail = rs.getString("mail");  
  24.                 System.out.println(id+"           "+username+"                     "+password+"    "+mail);  
  25.             }  
  26.               
  27.         }catch(Exception e){  
  28.             e.printStackTrace();  
  29.         }  
  30. //      System.out.println(condition +"=?"+ username);  
  31. //      System.out.println(condition_password +"=?"+ password);  
  32.         if(condition.equals(username) && condition_password.equals(password)){  
  33.             return true;  
  34.         }  
  35.         else{  
  36.             return false;  
  37.         }  
  38.     }  
  39.   
  40.    


 

用户注册:  
     用户注册也是需要条件的:用户名密码不为空,用户名在数据库中不存在。 
Java代码   收藏代码
  1. /**  
  2.      * 查询用户 用户不存在时允许注册 
  3.      * @param condition 查询条件 
  4.      */  
  5.     public boolean queryMember(String condition){  
  6.             String username = null;  
  7.         try{  
  8.             Connection con = this.getConnection();  
  9.             //定义SQL语句  
  10.             String sql2 = "select * from user where username = ?";  
  11.             PreparedStatement pstmt = con.prepareStatement(sql2);  
  12.               
  13.             //给每一个?占位符指定数据  
  14.             pstmt.setString(1, condition);  
  15.               
  16.             ResultSet rs = pstmt.executeQuery();//执行  
  17.               
  18.             System.out.println("id     username    password    mail");  
  19.             while(rs.next()){//检测是否还有下一条记录  
  20.                 int id = rs.getInt("id");  
  21.                 username = rs.getString("username");  
  22.                 String password = rs.getString("password");  
  23.                 String mail = rs.getString("mail");  
  24.                 System.out.println(id+"           "+username+"                     "+password+"    "+mail);  
  25.             }  
  26.               
  27.         }catch(Exception e){  
  28.             e.printStackTrace();  
  29.         }  
  30.           
  31.         if(condition == username ){  
  32.             return true;  
  33.         }  
  34.         else{  
  35.             return false;  
  36.         }  
  37.     }  
  38.                    

伦理片 http://www.dotdy .com/

 




用户修改个人资料等的功能将在后续加上。 
附件是所有代码的压缩文件。 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值