2010-12-14 4 views
0

SQLクエリーをワークベンチからjavaに転送しようとしています。 私はこのクエリをmySQLワークベンチに書きました。SQLクエリーをワークベンチから.javaクラスに転送する

SELECT committee_membermember_CAN#,memberfirst_name,memberlast_name,committee_membermember_status,committee_memberstart_year,committee_memberend_year,committee_memberadded_notes FROM委員会メンバーLEFT JOIN会員 ON committee_membermember_CAN# = CAN#

ここは私の.javaクラスコードです。私はこの情報を表示するテーブルを印刷しようとしています。 eclipseで「Unknown table 'committee_member' in field list」というエラーが発生するので、クエリの構文が間違っていると推測しています。以下のような

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#"; 
関連する問題