2010-12-14 5 views
0

SQL 쿼리를 내 워크 벤치의 java로 전송하려고합니다. 필자는 mySQL 워크 벤치에서이 쿼리를 작성했으며 원하는 결과로 잘 실행되었습니다.Workbench에서 .java 클래스로 SQL 쿼리 전송

SELECT committee_member. member_CAN#, member. first_name, member. last_name, committee_member. member_status, committee_member. start_year, committee_member. end_year, committee_member. added_notes FROM committee_member LEFT JOIN 회원 에 committee_member입니다. member_CAN# = CAN#

내 .java 클래스 코드입니다. 이 정보를 표시하는 테이블을 인쇄하려고합니다. "알 수없는 테이블 'committee_member'필드 목록에서 이클립스에서 오류가 계속 발생하므로 쿼리 구문이 잘못되었다고 생각합니다.

package model; 

import java.sql.*; 
import java.util.ArrayList; 

public class ViewCommitteeMember { 

private Connection connection; 
private ArrayList<CommitteeMember> members; 

public ViewCommitteeMember(){ 
members = new ArrayList<CommitteeMember>(); 
makeConnection(); 
} 

public void viewMembers(){ 
String query = "SELECT `committee_member`.`member_CAN#`, `member`.`first_name`,   `member`.`last_name`, `committee_member`.`member_status`, `committee_member`.`start_year`, `committee_member`.`end_year`, `committee_member`.`added_notes` FROM committee_member LEFT JOIN member ON `committee_member`.`member_CAN#` = `CAN#`"; 

PreparedStatement ps; 
try { 
ps = connection.prepareStatement(query); 

    ResultSet rs = ps.executeQuery(); 

    while (rs.next()){ //while the query is running, loop through all of the members 
    CommitteeMember member = new CommitteeMember(); //create a new member for each entry so info may be displayed 
    member.setID(rs.getInt(1)); //pulls the ID 
    member.setFirstname(rs.getString(2)); 
    member.setLastname(rs.getString(3)); 
    member.setMemStat(rs.getString(4)); //pulls the status 
    member.setStartYear(rs.getInt(5)); //pulls the start year 
    member.setEndYear(rs.getInt(6)); //pulls the end year 
    member.setNotes(rs.getString(7)); //pulls the additional notes 

    members.add(member); //add the member to the array list "members" 
    } 


    } catch (SQLException e) { 
// TODO Auto-generated catch block 
    e.printStackTrace(); 

} finally { 
    this.closeConnection(); 
} 
} 

    private void makeConnection(){ 
    // get connection 
    String url = "jdbc:mysql://localhost:3306/committee_database"; 
    String user = "root"; 
    String pwd = "coolman"; 
    try { 
    connection = DriverManager.getConnection(url, user, pwd); 
    } catch (SQLException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    } 
    } 

    private void closeConnection(){ 
try { 
    connection.close(); 
    } catch (SQLException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    } 
    } 

    /** 
    * @return the agents 
    */ 
    public ArrayList<CommitteeMember> getMembers() { //list of all the members 
    return members; 
    } 



    } 

답변

0

연결 CONN = NULL;

Class.forName("com.mysql.jdbc.Driver").newInstance(); 
String jdbcURL="jdbc:mysql://localhost:3306/jsp"; 
conn = DriverManager.getConnection(jdbcURL,"root", ""); 

PreparedStatement psSelectRecord=null; 
ResultSet rsSelectRecord=null; 
String sqlSelectRecord=null; 

sqlSelectRecord="SELECT s.iEmpID, s.sStaffName, s.sStaffDept, s.iStaffPhone,"+ 
        "d.sAddress FROM staff_register s " + 
         "left join staff_details d on d.iEmpID=s.iEmpID";  

psSelectRecord=conn.prepareStatement(sqlSelectRecord); 
rsSelectRecord=psSelectRecord.executeQuery(); 

그것을 시도에 가입 왼쪽의 샘플 ..

+0

흠, 도움을 주셔서 감사합니다 지금까지입니다. 이제 쿼리가 재구성되었으므로 "SELECT m.CAN #, m.first_name, m.last_name,"+ "cm.member_status, cm.start_year, cm.end_year, cm.added_notes"+ "FROM committee_member cm LEFT JOIN 회원 m ON m.CAN # = cm.member_CAN # "; 하지만 여전히 작동하지 않는, 나는 같은 오류 : 알 수없는 테이블 'committee_member'필드 목록에서 –

0

사용 별칭 같은 :

String query = "SELECT cm.member_CAN#, m.first_name, m.last_name, 
cm.member_status, cm.start_year, cm.end_year, cm.added_notes 
FROM committee_member cm LEFT JOIN member m ON cm.member_CAN# = m.CAN#";