2017-10-16 12 views
0

私はJavaに新しい、私はC#で経験があり、私は私のユニに使用されているプログラミング言語であることを試したかったのです。
C#でいくつかのプロジェクトを完了した後、私がした大きな間違いの1つは、データベース接続の詳細を一箇所に保存していないことでした。 (私はクエリを実行するたびに接続文字列を含める必要がありました)
初心者のための簡単なログインフォームを作成しています。sqlクエリを実行するためにストアドデータベース情報を使用します。java

sqlDB.java

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 


public class sqlDB{ 



    public Connection connect() { 
    Connection con = null; 
    String url = "jdbc:sqlserver//SERVER IP"; 
    String db = "DBNAME"; 
    String driver = "com.mysql.jdbc.Driver"; 
    String user = "USERNAME"; 
    String pass = "PASSWORD"; 
    try { 
     Class.forName(driver); 
     con = DriverManager.getConnection(url + db, user, pass); 
     if (con == null) { 
      System.out.println("Connection cannot be established"); 
     } 
     return con; 
    } catch (Exception e) { 
     System.out.println(e); 
    } 
    return null; 
} 



} 

Login.java

これは、ログインボタンのイベント、私がログイン中sqlDB.javaでデータベース接続を使用するにはどうすればよい

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           

     String username = usernameText.getText(); // username textbox value 
     String password = passwordText.getText(); // password textbox value 
    }  

です。 javaのようなクエリを実行する

"'Select user,pass from login where user='"+username+"' and pass='"+password+"' 

次に、ログインする番号を確認してください。

答えて

0

データベースで資格情報をチェックする可能性はありますが、使用するデータベースによって異なります。たとえば、次のようなことをすることができます:Check credentials of SQL Login

あなたが使用しているデータベースについて言及していないので、あなたのシステムに適したソリューションを探してください。

他のオプションは、パスワードをローカルに(暗号化して)保存し、それをオフラインで比較することです。

または、何か(常にSelect * From Humans Where HumanID = 1;のようなもの)が含まれているテーブルにSQLクエリを実行して、結果が得られるかどうかを確認してください。

+0

私はsqql.java形式の返された 'con'をlogin.javaに使用してSQLクエリを実行する方法を質問しています –

+0

SQLクエリーの実行方法を知りたいだけですか? –

0

これは、MS SQL接続を初期化
ファイル名のためのJavaコードです:DatabaseCon.java

/** 
* 
* @author Charindu Edirisuriya 
*/ 
package dash.control; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 


public class DatabaseCon{ 



    public Connection connect() { 

    Connection con = null; 
     String url = "jdbc:sqlserver://HOST;DatabaseName=DATABASENAME"; 
     String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; 
     String user = "USERNAME"; 
     String pass = "PASSWORD"; 
    try { 
     Class.forName(driver); 
     con = DriverManager.getConnection(url, user, pass); 
     if (con == null) { 
      System.out.println("Connection cannot be established"); 
     } 
     return con; 
    } catch (Exception e) { 
     System.out.println(e); 
    } 
    return null; 
} 



} 

これはチェックするためにSQL接続を使用して単純なJavaフォームですいくつかのレコードがデータベースに存在するかどうか(単純なログインフォーム)。あなたは文句を言わない持っているので、

ログインボタンのClickイベントは、このコードの主な目的は異なるJavaファイル内のSQL接続を保存し、プログラム全体でその接続を使用してすることでした

Connection connection; 
PreparedStatement ps; 

String username = usernameText.getText(); // Usename Textbox 
String password = String.valueOf(passwordText.getPassword()); //Password Textbox 


try{ 
    DatabaseCon db = new DatabaseCon(); 
    connection = db.connect(); 
    ps = connection.prepareStatement("SELECT Username, Password FROM Login WHERE Username = ? AND Password = ?"); 
    ps.setString(1, username); 
    ps.setString(2, password); 
    ResultSet result = ps.executeQuery(); 
    if(result.next()){ 
     System.out.println("Login Successesfully"); 
     new Main_Form().setVisible(true); //Loads new Form 
     this.setVisible(false); 



     } 
     else{ 
      System.out.println("Invalide Username Or Password"); 

     } 
    } 
    catch(Exception e) { 
    System.out.println(e); 
    JOptionPane.showMessageDialog(null, "Check your Internet Connection!","Iane error",JOptionPane.ERROR_MESSAGE); 
} 

次のコードをトリガしますSQL Serverをアップグレードまたは変更するたびにサーバー設定を変更します。 SQL接続ファイルを変更するだけです!

関連する問題