如何使用 oracle 数据库中的值验证我的密码,以及在 java 中返回 0 和返回 1 之间的区别是什么



我在Java方面不太好。我正在做一个应用程序,我想验证在文本框中输入为密码的值,并将存储在数据库中的密码值用于验证。如果两个值都不匹配,我想显示一条错误消息。我正在创建我将要使用的 Java 代码的 Web 服务。return 0return 1return (value)有什么区别?我该怎么做?有人可以给我一个示例代码示例吗?我已经在一个单独的类中创建了连接,并为它创建了一个名为 - dbsource 的对象。

package com.daoImpl;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.dto.LoginBean;
 public class ApplicationStatusDAO {
DBSource dbsouce = new DBSource();
public List<LoginBean> userLogin()
  {
    List<LoginBean> listloginBean=new ArrayList<LoginBean>();
    LoginBean loginbean=null;
    Statement stmt= null;
    try {
        String query = "select * from user_self";
        try {
            stmt = dbsouce.getConnection().createStatement();
            ResultSet rs = stmt.executeQuery(query);
            while(rs.next()) {
                loginbean=new LoginBean();
                 System.out.println("results: " + rs.getString("uname")+" "+        rs.getString("s_gender")+" "+ rs.getString("s_lname"));
                 loginbean.setUname(rs.getString("uname"));
                 loginbean.setPass(rs.getString("pass"));
                 loginbean.setGender(rs.getString("s_gender"));
                 loginbean.setLname(rs.getString("s_lname"));
                 listloginBean.add(loginbean);
            }
            System.out.println("size of list"+ listloginBean.size());
        } catch (SQLException e ) {
            System.out.println("result set Error: " + e);
        }

    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return listloginBean;
    }

第二类使用:

import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import com.daoImpl.ApplicationStatusDAO;
import com.dto.LoginBean;

@Path("/selfservice")
public class ServiceDispatcher {
@GET
@Produces("application/json")
@Path("login/")
public LoginBean loginAuth(@QueryParam("uname") String uname,@QueryParam("pass")    String pass) 
{
    LoginBean loginBean=new LoginBean();
    System.out.println("loginAuth- user name=" + uname + " password=" + pass);
    ApplicationStatusDAO applicationStatusDAO=new ApplicationStatusDAO();
    List<LoginBean> bean =applicationStatusDAO.userLogin();

    for(LoginBean aa:bean)
    {
    if(uname.equals(aa.getUname())&& pass.equals(aa.getPass()))
          {
        System.out.println("ssssssssssssssssssssssss");
        loginBean.setGender(aa.getGender());
        loginBean.setUname(aa.getUname());
        loginBean.setLname(aa.getLname());
        return loginBean;
           }
    else
    {
        System.out.println("ffffffffffffffffffffffffff");
        //LoginBean loginBean1=new LoginBean();
        //loginBean1.setFname("user name not ok");
        //return loginBean1; 
    }
    }

    return loginBean;
   }

从用户那里获取密码并将其存储在字符串对象中。

String pass = "yourpassword"; // or get it from System using Scanner
String username = "username";

现在创建一个函数,您将在其中从表中获取数据

   public int present(){
   // make query for Oracle data base
       String yourQry = "select * from yourtable where password = '"+pass+"' and username='"+username+"'" . 
    //Use this query when you are fetching data from user.
    Resultset rs;// fetch your data in resultset
         if(rs.next()){
               // if data got fetched 
               return 1;// In other languages(C,C++) 0 and 1 are treated as true or false
               // 1 means true
          }
         else{
                  return 0; // 0 means false (No datafound) 
         }
        }

现在从main()调用此函数

int a = present();
if (a==0){
  System.out.print("data not found")
}
else{
    System.out.print("data found")
}
  1. 方法返回的内容实际上取决于它的作用。与 C 不同,您有一个基元 boolean 类型,因此如果要返回方法的成功/失败,则应分别返回 true/false。但是,您可能还需要一个void方法,该方法引发一些Exception而不是返回值。

  2. 从数据库中获取密码的值,并使用 equals() 方法将其与输入字符串进行比较。

最新更新