2017-04-08 8 views
0

로그인 정보로 이메일 주소와 비밀번호를 사용하는 로그인 페이지를 만들고 싶습니다. 어쨌든 Jackcess를 사용하여이 작업을 수행합니까? 나에게 SQL 예외 오류를 계속주고 있기 때문에 나는 ucanaccess 메서드를 사용하지 않을 것이다. 데이터베이스 여기Jackcess를 사용하여 Java에서 이메일 주소와 비밀번호를 어떻게 확인합니까?

login.addActionListener(new ActionListener(){ 
     public void actionPerformed(ActionEvent action){ 

      try { 
       File file= new File("User_Details.accdb"); 
       Database data=DatabaseBuilder.open(file); 
       if((file.exists())&&(!file.isDirectory())){ 

       } 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

      } 



     }); 

것 : https://i.stack.imgur.com/2UUh8.png

이 샘플 입력은 다음과 같습니다

public void actionPerformed(ActionEvent action) { 
    if(action.getSource()==next){ 
     int x=0; 
     String s1=t_name.getText(); 
     String s2=t_email.getText(); 
     char[]s3=pw.getPassword(); 
     char[]s4=c_pw.getPassword(); 
     String pass=new String(s3); 
     String conf=new String(s4); 
     String s5=t_phone.getText(); 
     Object s6=city.getSelectedItem(); 
     String s7=t_cc.getText(); 
     if((!s1.isEmpty())&&(!s2.isEmpty())&&(!pass.isEmpty())&&(!conf.isEmpty())&&(!s5.isEmpty())&&(!s7.isEmpty())&&(pass.equals(conf))){ 
      String file="C:/Users/Ameer Izwan/Documents/User_Details.accdb"; 
     try{ 
      Database db=DatabaseBuilder.create(Database.FileFormat.V2000,new File(file)); 
      Table table=new TableBuilder("Login") 
      .addColumn(new ColumnBuilder("Email Address",DataType.TEXT)) 
      .addColumn(new ColumnBuilder("Name",DataType.TEXT)) 
      .addColumn(new ColumnBuilder("Password",DataType.TEXT)) 
      .addColumn(new ColumnBuilder("Phone No",DataType.TEXT)) 
      .addColumn(new ColumnBuilder("Cities",DataType.TEXT)) 
      .addColumn(new ColumnBuilder("Credit/Debit Card No",DataType.TEXT)) 
      .toTable(db); 


      table.addRow(s2,s1,pass,s5,s6,s7); 
      x++; 
      if(x>0){  

       for(int i=0;i<=100;i++){ 
        final int value=i; 
        SwingUtilities.invokeLater(new Runnable() { 
         public void run() { 
          bar.setValue(value); 
         } 
        }); 

이 후 작성 가득 데이터베이스입니다 여기

페이지의 기호에 대한 코드입니다 출력 : https://i.stack.imgur.com/HMjzc.png

당신은 이것에 대해 Jackcess를 사용하여 어떤 생각을 가지고 있습니까?

+0

null를 돌려줍니다입니까? 각 행에 사용자 이름과 비밀번호가 포함되어 있습니까? 사용자 이름과 비밀번호를 확인하고 사용자를 인증 하시겠습니까? – prasanth

+0

데이터베이스 코드를 추가했습니다. 지금은 한 줄 먼저 해보기를 원할 것입니다. 이메일 주소 (기본 키)와 비밀번호를 확인하고 싶습니다. – MrBlock2274

답변

1

http://jackcess.sourceforge.net/ 샘플 코드에서 나는 당신을 위해 작동하는 코드를 작성했습니다.

public boolean authenticate(String email, char[] password) { 
    Table table = DatabaseBuilder.open(new File("C:/Users/Ameer Izwan/Documents/User_Details.accdb")).getTable("Login"); 
    Row row = CursorBuilder.findRow(table, 
      Collections.singletonMap("Email Address", email)); 
    if(row != null) { 
    String p = row.get('Password'); 
    // if the password matches authenticate or else deny 
    } else { 
    // Dont authenticate 
    } 
} 

참고 : 확인 파일 경로는 절대 또는 다른 행이 DB의 스키마 무엇

+0

"[email protected]"을 어떻게 대체합니까? 어떤 색인을 포함시켜야합니까? 데이터베이스 내부의 데이터라고 생각하십니까? 나에게 진전을 제공 해준 데 대해 많은 감사를드립니다. – MrBlock2274

+0

로그인 페이지에서 가져온 사용자 이름과 비밀번호를이 메소드로 전달하면됩니다. 우리는 이름으로 열을 액세스하기 때문에 색인을 제공하지 않아도됩니다. 예 데이터베이스에있는 데이터입니다 – prasanth

+0

데이터베이스 나 테이블이 매우 큰 경우 프로그램 시작시 열어서 응용 프로그램의 수명 기간 동안 다시 사용할 수 있습니다. 매번 – prasanth