Java連接MySQL數據庫實現用戶名密碼的驗證方法 Java語句中sql查詢語句'' ""作用


//方法一,可以驗證登錄,但方法不實用。
package
com.swift; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; public class LoginJDBC { public static void main(String[] args) { User userZhangsan=new User("swift","123456"); if(login(userZhangsan)) { System.out.println("登陸成功"); }else { System.out.println("登陸失敗"); } } private static boolean login(User userZhangsan) { Connection conn=null; Statement st=null; ResultSet rs=null; try { //1、裝載驅動 Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { //2、鏈接數據庫,使用com.mysql.jdbc.Connection包會出錯 List<User> list=new ArrayList<User>(); conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/sw_database?user=root&password=root"); //3、創建連接語句 st=conn.createStatement(); //4、執行SQL語句獲得結果集 rs=st.executeQuery("select * from sw_user"); //5、循環獲得數據庫字段生成對象 //這種方法登錄要把數據庫數據都拿過來和login中數據比較,超級浪費資源 while(rs.next()) { String username=rs.getString("username"); String password=rs.getString("password"); if(username.equals(userZhangsan.getUsername())&&password.equals(userZhangsan.getPassword())) { return true; }else { return false; } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { //關閉結果集 try { if(rs!=null) { rs.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //關閉連接語句 try { if(st!=null) { st.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //關閉數據庫連接 try { if(conn!=null) { conn.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return false; } }

 

方法二 使用數據庫查詢語句 select * from sw_user where username='swift' and password='123456'

在Java程序中注意單引號''是不可缺少的,它是sql語句自帶部分,雙引號是Java的字符串連接符,所以要了解"" ''各自的作用

package com.swift;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class LoginJDBC2 {

    public static void main(String[] args) {
        User userZhangsan=new User("zhangsan","123456");
        if(login(userZhangsan)) {
            System.out.println("登陸成功");
        }else {
            System.out.println("登陸失敗");
        }
    }

    private static boolean login(User userZhangsan) {
        
        Connection conn=null;
        Statement st=null;
        ResultSet rs=null;
        try {
            //1、裝載驅動
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try {
            //2、鏈接數據庫,使用com.mysql.jdbc.Connection包會出錯
            List<User> list=new ArrayList<User>();
            conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/sw_database?user=root&password=root");
            //3、創建連接語句
            st=conn.createStatement();
            //4、執行SQL語句獲得結果集
            rs=st.executeQuery("select * from sw_user where username='"+userZhangsan.getUsername()+"' and password='"+userZhangsan.getPassword()+"'");
            //5、循環獲得數據庫字段生成對象
            //這種方法登錄要把數據庫數據都拿過來和login中數據比較,超級浪費資源
            if(rs.next()) {
                return true;
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            //關閉結果集
            try {
                if(rs!=null) {
                   rs.close();
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            //關閉連接語句
            try {
                if(st!=null) {
                   st.close();
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            //關閉數據庫連接
            try {
                if(conn!=null) {
                    conn.close();
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return false;
        
        
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM