JAVA簡單鏈接Oracle數(shù)據(jù)庫 注冊(cè)和登陸功能的實(shí)現(xiàn)代碼
//User 用戶的基本信息,也是USERINFO表中的3個(gè)列
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;
}
}
//用于注冊(cè)和登陸的小小代碼塊
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("請(qǐng)輸入登陸名");
u.setLoginname(sc.nextLine());
System.out.println("請(qǐng)輸入密碼");
u.setLoginpsw(sc.nextLine());
return u;
}
public static User registerUser(){
User u = new User();
Scanner sc = new Scanner(System.in);
System.out.println("請(qǐng)注冊(cè)用戶名名");
u.setName(sc.nextLine());
System.out.println("請(qǐng)注冊(cè)登陸名");
u.setLoginname(sc.nextLine());
System.out.println("請(qǐng)注冊(cè)密碼");
u.setLoginpsw(sc.nextLine());
return u;
}
}
//登陸時(shí)的檢查,判斷登陸名和密碼是否正確,正確則返回 用戶名
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()+"登陸");
}
}
}
//注冊(cè)界面,要判斷 登陸名是否有重復(fù),有重復(fù)則注冊(cè)失敗。有點(diǎn)小疑問,已用注釋標(biāo)出來
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;
//判斷登陸名是否已經(jīng)存在
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());
//判斷登陸名是否已經(jīng)存在
s = conn.createStatement();
rs = s.executeQuery(sql_ck);
while(rs.next()){//為什么用 rs.getString(2)會(huì)提示 無效的索引呢
if( rs.getString("LOGINNAME").equals(u.getLoginname()) ){
System.out.println("登陸名已經(jīng)存在,注冊(cè)失敗");
break;
}else{
pst.executeUpdate();
System.out.println("注冊(cè)成功");
break;
}
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
rs.close();
pst.close();
s.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
//main界面//
//數(shù)據(jù)庫中表的結(jié)構(gòu)式這樣
//name(用戶名,用于顯示),
//loginname(登錄名,即登陸時(shí)輸入的ID)
//loginpsw(登陸時(shí)輸入的密碼)
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登陸請(qǐng)按1\t\t注冊(cè)請(qǐng)按2");
chos = sc.nextInt();
switch(chos){
case 1: Check.checkUser(In.getUser());break;
case 2: Register.registUser(In.registerUser());break;
default: System.out.println("請(qǐng)輸入正確的選擇");break;
}
}
}
- java模擬cookie登陸操作
- cookie、session和java過濾器結(jié)合實(shí)現(xiàn)登陸程序
- JAVA實(shí)現(xiàn)簡單系統(tǒng)登陸注冊(cè)模塊
- JavaWeb登陸功能實(shí)現(xiàn)代碼
- java shiro實(shí)現(xiàn)退出登陸清空緩存
- JavaWeb基于Session實(shí)現(xiàn)的用戶登陸注銷方法示例
- Java Web實(shí)現(xiàn)session過期后自動(dòng)跳轉(zhuǎn)到登陸頁功能【基于過濾器】
- java客戶端登陸服務(wù)器用戶名驗(yàn)證
- Java Web開發(fā)過程中登陸模塊的驗(yàn)證碼的實(shí)現(xiàn)方式總結(jié)
- Java Swing中JDialog實(shí)現(xiàn)用戶登陸UI示例
- Java 模擬cookie登陸簡單操作示例
相關(guān)文章
SpringBoot中Controller參數(shù)與返回值的用法總結(jié)
這篇文章主要介紹了SpringBoot中Controller參數(shù)與返回值的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07java實(shí)現(xiàn)兩個(gè)線程交替打印的實(shí)例代碼
在本篇文章里小編給大家整理的是一篇關(guān)于java實(shí)現(xiàn)兩個(gè)線程交替打印的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們參考下。2019-12-12java如何實(shí)現(xiàn)抽取json文件指定字段值
這篇文章主要介紹了java如何實(shí)現(xiàn)抽取json文件指定字段值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2022-06-06Java?restTemplate發(fā)送get請(qǐng)求query參數(shù)傳遞問題解決
這篇文章主要為大家介紹了Java?restTemplate發(fā)送get請(qǐng)求query參數(shù)傳遞問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11SpringBoot注冊(cè)FilterRegistrationBean相關(guān)情況講解
這篇文章主要介紹了SpringBoot注冊(cè)FilterRegistrationBean相關(guān)情況,借助FilterRegistrationBean來注冊(cè)filter,可以避免在web.xml種配置filter這種原始的寫法2023-02-02mybatis同一張表多次連接查詢相同列賦值問題小結(jié)
這篇文章主要介紹了mybatis同一張表多次連接查詢相同列賦值問題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下2017-01-01