2013-04-02 2 views
2

JAVA를 SQL SERVER에 연결하려고했지만 어떻게해야하는지 모릅니다. 지난 학기에 MS ACCESS를 데이터베이스로 사용하는 프로그램을 만들었습니다. 궁금 해서요. 내가 만들고있는 프로그램을 SQL Server에 연결하는 데에도 사용할 수 있다면. 여기 JAVA 응용 프로그램을 SQL SERVER에 연결

내가 Java.Main에 사용되는 코드입니다 :

package pkg3a3pgroupsix; 

import java.sql.*; 
import javax.swing.*; 
public class Main { 

Connection conn = null; 
ResultSet rs = null; 
PreparedStatement pst = null; 
Statement s; 

    public static Connection ConnectDatabase(){ 

    try{ 
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
     Connection conn = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=BillingSystem.mdb"); 

     return conn; 
    }catch(Exception e){ 
     JOptionPane.showMessageDialog(null, e); 
     return null; 

    } 
} 

    public static void main(String[] args) { 
     try { 
      for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
       if ("Windows".equals(info.getName())) { 
        javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
        break; 
       } 
      } 
     } catch (ClassNotFoundException ex) { 
      java.util.logging.Logger.getLogger(Login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (InstantiationException ex) { 
      java.util.logging.Logger.getLogger(Login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (IllegalAccessException ex) { 
      java.util.logging.Logger.getLogger(Login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
      java.util.logging.Logger.getLogger(Login.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } 
     // TODO code application logic here 
    } 
} 

여기에 내가에 로그인하기 위해 사용되는 코드입니다 :

package pkg3a3pgroupsix; 

import java.awt.*; 
import java.nio.channels.SeekableByteChannel; 
import javax.swing.*; 
import java.sql.*; 
public class Login extends javax.swing.JFrame { 
Connection conn; 
ResultSet rs = null; 
PreparedStatement pst = null; 
int counter = 0; 

public void registration(){ 
    User_Registration ur = new User_Registration(); 
    ur.setVisible(true); 
    ur.setExtendedState(MAXIMIZED_BOTH); 
    this.dispose(); 
} 
public void exit(){ 
    int selectedOption = JOptionPane.showConfirmDialog(null, 
            "Do you wanna close the window?", 
            "Exit", 
            JOptionPane.YES_NO_OPTION); 
     if (selectedOption == JOptionPane.YES_OPTION) { this.dispose();} 
} 

    public Login() { 
     initComponents(); 
    }      

    private void btnloginActionPerformed(java.awt.event.ActionEvent evt) {           
      // TODO add your handling code here: 
     String sqllogin = "select * from Employee where Username='" + jTextField1.getText() + "' and Password='" + jPasswordField1.getText() + "'"; 
     try { 
      pst = conn.prepareStatement(sqllogin); 
      rs = pst.executeQuery(); 
      if (rs.next()) { 
      SelectionScreen s = new SelectionScreen(); 
      s.setVisible(true); 
      this.dispose();counter = 0;} 
      else {JOptionPane.showMessageDialog(null, "Invalid Username or Password!");counter += 1; 
      if (counter == 1) {JOptionPane.showMessageDialog(null, "WARNING! 1st Attempt of Log-In!");} 
      else if (counter == 2) {JOptionPane.showMessageDialog(null, "WARNING! 2nd Attempt of Log-In!");}} 
      if (counter == 3) {JOptionPane.showMessageDialog(null, "WARNING! 3rd Attempt of Log-In!"); 
      {JOptionPane.showMessageDialog(null, "The Program Will Shutdown.");this.dispose();}}} 
     catch (Exception e) {JOptionPane.showMessageDialog(null, e);} 
    }           

    private void formWindowOpened(java.awt.event.WindowEvent evt) {         

     conn = Main.ConnectDatabase(); 
    }         

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

     exit(); 
    }          

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

     String sqllogin = "select * from Login where Username='" + jTextField1.getText() + "' and Password='" + jPasswordField1.getText() + "'"; 
     try { 
      pst = conn.prepareStatement(sqllogin); 
      rs = pst.executeQuery(); 
      if (rs.next()) { 
      User_Registration UR = new User_Registration(); 
      UR.setVisible(true); 
      this.dispose();counter = 0;} 
      else {JOptionPane.showMessageDialog(null, "Invalid Username or Password!");counter += 1; 
      if (counter == 1) {JOptionPane.showMessageDialog(null, "WARNING! 1st Attempt of Log-In!");} 
      else if (counter == 2) {JOptionPane.showMessageDialog(null, "WARNING! 2nd Attempt of Log-In!");}} 
      if (counter == 3) {JOptionPane.showMessageDialog(null, "WARNING! 3rd Attempt of Log-In!"); 
      {JOptionPane.showMessageDialog(null, "The Program Will Shutdown.");this.dispose();}}} 
     catch (Exception e) {JOptionPane.showMessageDialog(null, e);} 
    } 

내가 본을 사용해 할 수는?

+1

SQL Server 용 JDBC 드라이버가 필요합니다. [this] (http://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx)에서 시작하거나 [this] (http://stackoverflow.com/questions/1310536/how)를보십시오. -to-make-java-work-with-sql-server) – MadProgrammer

답변

4

Java 응용 프로그램에서 MS SQL Server에 연결하려면 JDBC API을 사용해야합니다. JDBC API 데이터베이스에 연결 클래스와 메소드를 제공하는 등의 결과를 검색, SQL 쿼리를 보내, 해당 드라이버를로드

데이터베이스에 연결하는 방법 : A ' Connection'객체는 데이터베이스와의 연결을 나타냅니다. 연결을 설정하려면 ' DriverManager.getConnection'메서드를 사용하십시오. 이 메서드는 연결하려는 데이터베이스를 나타내는 URL을 포함하는 문자열을 사용합니다. 데이터베이스 URL 어떻게이 게시물의 끝 부분에 제공되는 자원에서 찾을 수 있습니다 만드는 방법에 대한

private String DATABASE_URL = "jdbc:odbc:embedded_sql_app"; // establish connection to database 
Connection connection = DriverManager.getConnection(DATABASE_URL,"sa","123"); 

상세 설명 : 아래에 연결을 설정하는 샘플 코드입니다.

데이터베이스 쿼리 :JDBC API 데이터베이스에 SQL 문을 전송하고, 그 인스턴스를 만들려면 'Connection'인터페이스 방법을 해당하는 세 가지 인터페이스를 제공합니다. Statement - 'Connection.createStatement'방법으로 생성. 'Statement'개체는 매개 변수없이 SQL 문을 보내는 데 사용됩니다. 2.PreparedStatement - 'Connection.prepareStatement 방법'으로 생성되었습니다. 'PreparedStatement'오브젝트는 프리 D 파일 된 SQL 문에 사용됩니다. 이들은 하나 이상의 매개 변수를 입력 인수 (IN 매개 변수)로 취할 수 있습니다. 3.CallableStatement - 'Connection.prepareCall'방법으로 생성됩니다. 'CallableStatement'개체는 Java 데이터베이스 응용 프로그램에서 SQL 저장 프로 시저를 실행하는 데 사용됩니다.

결과 검색 : 'ResultSet은 SQL 쿼리를 실행 한 결과가 포함 된 Java 개체입니다.'ResultSet'개체에 저장된 데이터는 현재 행의 다양한 열에 액세스 할 수있는 get 메서드 집합을 통해 검색됩니다. 'ResultSet.next'메서드는 'ResultSet'의 다음 행으로 이동하여 현재 행으로 만듭니다.

java.sql.Statement stmt = con.createStatement(); 
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1"); 
while (rs.next()) { // retrieve and print the values for the current row 
    int i = rs.getInt("a"); 
    String s = rs.getString("b"); 
    float f = rs.getFloat("c"); 
    System.out.println("ROW = " + i + " " + s + " " + f); 
} 
: 다음 코드는 ' float'로서 A A ' String'로서 ' int'열 ' b'로 열의 a "와 행들의 집합을 리턴 질의 및 열의 c을 '실행

이것은 Java에서 데이터베이스와 상호 작용하는 방법에 대한 간략한 소개입니다. 위에서 언급 한 항목에 대한 자세한 내용과 매개 변수 전달, 저장 프로 시저 실행 등에 대한 정보는 다음 리소스를 참조하십시오. (http://www.shahriarnk.com/embedding-sql-c-sharp-java-shahriar/#Shahriar_N_Embedding_SQL_in_Java) 데이터베이스와 프로그래밍 방식으로 상호 작용하는 방법에 대한 정보도 제공됩니다. SQL을 사용하지 않고. 희망이 당신이 유용하다고 생각합니다.

출처 : www.shahriarnk.com/embedding-sql-c-sharp-java-shahriar/

0

연결하는 모든 DB (데이터베이스)는 다른 연결 문자열을 가지며 사용중인 DB에 따라 다른 클래스를 갖게됩니다. 위의 예에서 사용중인 것은 다음과 같습니다.

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
Connection conn = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=BillingSystem.mdb"); 

SQL Server 및 드라이버에 대한 연결 문자열을 가져와야합니다. 둘 다 쉽게 연구됩니다.

쉽게 Eclipse, Netbeans 또는 대부분의 IDE를 사용하는 경우 연결을 추가 할 수있는 서버 탐색기 창이 있으며 연결 문자열에 쉽게 액세스 할 수 있습니다.

관련 문제