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

时间:2024-01-23 13:15:12 


//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;
  }
 }

}

标签:JAVA,Oracle,数据库
0
投稿

猜你喜欢

  • 教你用YOLOv5实现多路摄像头实时目标检测功能

    2022-12-27 08:51:14
  • Python实现识别图片内容的方法分析

    2022-01-04 21:10:51
  • vue中Axios添加拦截器刷新token的实现方法

    2024-05-13 09:07:41
  • Python接口测试文件上传实例解析

    2023-04-19 15:59:28
  • python 浮点数四舍五入需要注意的地方

    2021-11-04 04:37:56
  • golang并发安全及读写互斥锁的示例分析

    2024-02-13 14:21:45
  • 节日快乐! Python画一棵圣诞树送给你

    2022-06-11 07:53:09
  • Oracle数据库安全策略分析(二)

    2010-07-31 13:04:00
  • 推荐值得学习的12款python-web开发框架

    2021-10-20 21:46:10
  • java 查询oracle数据库所有表DatabaseMetaData的用法(详解)

    2024-01-16 02:31:33
  • Mysql json类型字段Java+Mybatis数据字典功能的实践方式

    2024-01-22 00:24:34
  • 在django项目中,如何单独运行某个python文件

    2023-04-27 07:37:22
  • 将python字符串转化成长表达式的函数eval实例

    2022-08-25 18:27:23
  • python实现合并多个list及合并多个django QuerySet的方法示例

    2023-11-25 06:43:13
  • Python中输入若干整数以逗号间隔实现统计每个整数出现次数

    2021-10-27 22:20:04
  • python plotly画柱状图代码实例

    2023-11-29 13:41:31
  • python2.7+selenium2实现淘宝滑块自动认证功能

    2023-06-06 14:29:34
  • 公网远程访问局域网SQL Server数据库

    2024-01-22 01:38:21
  • 详解MySql的慢查询分析及开启慢查询日志

    2024-01-18 12:56:56
  • sqlserver利用存储过程去除重复行的sql语句

    2024-01-20 06:28:54
  • asp之家 网络编程 m.aspxhome.com