JAVA简单链接Oracle数据库 注册和登陆功能的实现代码
JAVA简单链接Oracle数据库 注册和登陆功能的实现代码
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下://User用户的基本信息,也是USERINFO表中的3个列package登陆判断;publicclassUser{pri...

复制代码 代码如下:

//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("tt登陆请按1tt注册请按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学习
编程开发子分类