JAVA简单链接Oracle数据库 注册和登陆功能的实现代码
//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;
}
}
}