* 鍵盤輸入用戶名和密碼,對比數據庫中的用戶信息,判斷是否登陸成功
* 一、鏈接數據庫java
* MyJDBCUtils.getConnection()mysql
* 二、獲取請求對象stmtsql
* conn.createStmtement()數據庫
* 三、建立鍵盤對象,獲取用戶名和密碼安全
* 3.1 建立鍵盤錄入對象網絡
* 3.2 提示用戶輸入dom
* 3.3 獲取用戶輸入內容工具
* 四、編寫SQL語句,把用戶名和密碼放入SQL語句中測試
* 五、執行查詢,獲取查詢結果url
* stmt.executeQuery(sql);
* 六、根據查詢結果判斷登陸是否成功
* 七、關閉鏈接
在java開發過程當中,代碼中時經常使用到一些Scanner、Random同樣的類,他們是鍵盤錄入,生成隨機數的類,像一個工具同樣,在java中被稱爲工具類。
咱們在編寫本身的代碼時,有的代碼功能和java工具相似,好比鏈接數據庫、驗證登陸,時長會用獲得,每次都書寫一次太麻煩,咱們能夠嘗試編寫本身的工具類,每次用到的時候直接導包調用就行,能提升咱們的開發效率。
代碼以下:
工具類代碼:
package com.qianfeng.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* JDBC工具類
* 有獲取鏈接的方法
* @author dushine
*/
public class JDBCUtil {
/**
* 獲取數據庫鏈接的方法
* @return Connection conn
* @throws SQLException
*/
public static Connection getConnection() throws SQLException {
String url = "jdbc:mysql://localhost:3306/class?useSSL=false";
String user = "root";
String password = "root";
Connection conn = DriverManager.getConnection(url,user,password);
return conn;
}
/**
* 釋放鏈接的方法
* @param conn
* @throws SQLException
*/
public static void releaseSourse(Connection conn) throws SQLException {
if (conn != null) {
conn.close();
}
}
/**
* 釋放鏈接的方法
* @param conn 數據庫鏈接對象
* @param stmt 執行SQL語句的對象
* @throws SQLException
*/
public static void releaseSourse(Connection conn,Statement stmt) throws SQLException {
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
/**
* 釋放鏈接的方法
* @param conn 數據庫鏈接對象
* @param stmt 執行SQL語句的對象
* @param resultSet 執行SQL語句的返回的結果集
* @throws SQLException
*/
public static void releaseSourse(Connection conn,Statement stmt,ResultSet resultSet) throws SQLException {
if (resultSet != null) {
resultSet.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
}
測試類代碼:
package com.qianfeng.demos;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;
import com.qianfeng.util.JDBCUtil;
public class Demo04 {
public static void main(String[] args) throws Exception {
/**
* 登陸註冊
* 獲取用戶輸入內容
* 把輸入的內容當作條件查詢數據庫中的內容
*/
Scanner sc = new Scanner(System.in);
System.out.println("請輸入用戶名:");
String name = sc.nextLine();
System.out.println("請輸入密碼:");
String pwd = sc.nextLine();
// 註冊驅動
Class.forName("com.mysql.jdbc.Driver");
/*
String url = "jdbc:mysql://localhost:3306/class?useSSL=false";
String user = "root";
String password = "root";
// 獲取和數據庫的鏈接
Connection conn = DriverManager.getConnection(url, user, password);*/
Connection conn = JDBCUtil.getConnection();
// 使用鏈接對象獲取執行sql的對象
Statement stmt = conn.createStatement();
// 編寫SQL語句
String sql = "select * from userinfo where username='"+name+"' and password='"+pwd+"'";
System.out.println(sql);
// 執行SQL語句,獲取返回結果
ResultSet resultSet = stmt.executeQuery(sql);
if (resultSet.next()) {
System.out.println("登錄成功!");
} else {
System.out.println("用戶名或密碼錯誤!");
}
JDBCUtil.releaseSourse(conn, stmt, resultSet);
sc.close();
}
}