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

所属分类: 软件编程 / java 阅读数: 118
收藏 0 赞 0 分享

复制代码 代码如下:

//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实现一个简单的文件上传案例示例代码

这篇文章主要介绍了Java实现一个简单的文件上传案例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

详解在spring中使用JdbcTemplate操作数据库的几种方式

这篇文章主要介绍了详解在spring中使用JdbcTemplate操作数据库的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

java中的switch case语句使用详解

这篇文章主要介绍了java中的switch case语句使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

深入理解Java 线程池

这篇文章主要介绍了Java 线程池的相关资料,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

详解mybatis #{}和${}的区别、传参、基本语法

这篇文章主要介绍了mybatis #{}和${}的区别、传参、基本语法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

MyBatis 中 ${}和 #{}的正确使用方法(千万不要乱用)

这篇文章主要介绍了MyBatis 中 ${}和 #{}的正确使用方法,本文给大家提到了MyBatis 中 ${}和 #{}的区别,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Mybatis中的 ${} 和 #{}区别与用法

这篇文章主要介绍了Mybatis中的 ${} 和 #{}区别与用法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Maven安装过程图文详解

这篇文章主要介绍了Maven安装过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
收藏 0 赞 0 分享

SpringBoot登录拦截配置详解(实测可用)

这篇文章主要介绍了SpringBoot登录拦截配置详解(实测可用),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

JAVA 内存溢出案例汇总

这篇文章主要介绍了JAVA 内存溢出案例的汇总,文中讲解非常细致,帮助各位工作学习时避免内存溢出,感兴趣的朋友可以了解下
收藏 0 赞 0 分享
查看更多