欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JAVA简单链接Oracle数据库 注册和登陆功能的实现代码

程序员文章站 2024-02-21 20:14:58
复制代码 代码如下://user 用户的基本信息,也是userinfo表中的3个列package 登陆判断; public class user {  &nb...

复制代码 代码如下:

//user 用户的基本信息,也是userinfo表中的3个列
package 登陆判断;

public class user {

  private string name;
  private string loginname;
  private string loginpsw;
  public string getname() {
   return name;
  }
  public void setname(string name) {
   this.name = name;
  }
  public string getloginname() {
   return loginname;
  }
  public void setloginname(string loginname) {
   this.loginname = loginname;
  }
  public string getloginpsw() {
   return loginpsw;
  }
  public void setloginpsw(string loginpsw) {
   this.loginpsw = loginpsw;
  }
}
//用于注册和登陆的小小代码块
package 登陆判断;

import java.util.scanner;

public class in {

  public static user getuser(){
   user u = new user();
   scanner sc = new scanner(system.in);
   system.out.println("请输入登陆名");
   u.setloginname(sc.nextline());
   system.out.println("请输入密码");
   u.setloginpsw(sc.nextline());
   return  u;
  }
  public static user registeruser(){
   user u = new user();
   scanner sc = new scanner(system.in);
   system.out.println("请注册用户名名");
   u.setname(sc.nextline());
   system.out.println("请注册登陆名");
   u.setloginname(sc.nextline());
   system.out.println("请注册密码");
   u.setloginpsw(sc.nextline());
   return  u;
  }
}

//登陆时的检查,判断登陆名和密码是否正确,正确则返回 用户名
package 登陆判断;

import java.sql.connection;
import java.sql.drivermanager;
import java.sql.preparedstatement;
import java.sql.resultset;
import java.sql.sqlexception;

public class check {

  public static void checkuser(user u)
  {
   try {
    class.forname("oracle.jdbc.driver.oracledriver");
   } catch (classnotfoundexception e) {
    e.printstacktrace();
   }
   string url = "jdbc:oracle:thin:@localhost:1521:orcl";
   string user = "scott";
   string password = "tiger";
   connection conn = null;
   resultset rs = null;
   preparedstatement pst = null;

   string sql = "select name from userinfo where loginname = ? and loginpsw = ? ";
   try {
    conn = drivermanager.getconnection(url, user, password);
    pst = conn.preparestatement(sql);
    pst.setstring(1, u.getloginname());
    pst.setstring(2,u.getloginpsw());
    rs = pst.executequery();
    while(rs.next()){
     u.setname(rs.getstring(1));
    }    
   } catch (sqlexception e) {
    e.printstacktrace();
   }finally{
    try {
     rs.close();
     pst.close();
     conn.close();
    } catch (sqlexception e) {
     e.printstacktrace();
    }
   }
   if(u.getname() == null || u.getname().isempty()){
    system.out.println("登陆失败");
   }else{
    system.out.println("欢迎"+u.getname()+"登陆");
   }

  }
}

//注册界面,要判断 登陆名是否有重复,有重复则注册失败。有点小疑问,已用注释标出来
package 登陆判断;

import java.sql.connection;
import java.sql.drivermanager;
import java.sql.preparedstatement;
import java.sql.resultset;
import java.sql.sqlexception;
import java.sql.statement;

public class register {

  public static void registuser(user u){

   try {
    class.forname("oracle.jdbc.driver.oracledriver");
   } catch (classnotfoundexception e) {
    e.printstacktrace();
   }
   string url = "jdbc:oracle:thin:@localhost:1521:orcl";
   string user = "scott";
   string password = "tiger";
   connection conn = null;
   string sql = "insert into userinfo values(?,?,?)";
   preparedstatement pst = null;

   //判断登陆名是否已经存在
   statement s = null;
   resultset rs = null;
   string sql_ck = "select loginname from userinfo";
   try {
    conn = drivermanager.getconnection(url, user, password);
    pst = conn.preparestatement(sql);
    pst.setstring(1, u.getname());
    pst.setstring(2, u.getloginname());
    pst.setstring(3, u.getloginpsw());
    //判断登陆名是否已经存在
    s = conn.createstatement();
    rs = s.executequery(sql_ck);
    while(rs.next()){//为什么用 rs.getstring(2)会提示 无效的索引呢
     if( rs.getstring("loginname").equals(u.getloginname()) ){
      system.out.println("登陆名已经存在,注册失败");
      break;
     }else{
      pst.executeupdate();
      system.out.println("注册成功");
      break;
     }
    } 
   } catch (sqlexception e) {
    e.printstacktrace();
   }finally{
    try {
     rs.close();
     pst.close();
     s.close();
     conn.close();
    } catch (sqlexception e) {
     e.printstacktrace();
    }
   }

   
  }
}
//main界面//
//数据库中表的结构式这样
//name(用户名,用于显示),
//loginname(登录名,即登陆时输入的id)
//loginpsw(登陆时输入的密码)
package 登陆判断;

import java.util.scanner;

public class test {

 public static void main(string[] args) {

  int chos = 0;
  scanner sc = new scanner(system.in);
  system.out.println("\t\t登陆请按1\t\t注册请按2");
  chos = sc.nextint();
  switch(chos){
  case 1: check.checkuser(in.getuser());break;
  case 2: register.registuser(in.registeruser());break;
  default: system.out.println("请输入正确的选择");break;
  }
 }

}