将SQL查询从工作台传输到.java类

将SQL查询从工作台传输到.java类,java,sql,syntax,Java,Sql,Syntax,我正在尝试从我的工作台将SQL查询转换为java。 我在mySQL工作台中编写了这个查询,它执行得很好,得到了我想要的结果 选择委员会成员。成员可以,成员。姓名,成员。姓氏,委员会成员。成员状态,委员会成员。开始年,委员会成员。结束年,委员会成员。添加注释 从委员会成员左加入成员 委员会成员 下面是我的.java类代码。我正在尝试打印显示此信息的表。 我一直收到一个错误,在eclipse中读取字段列表中的未知表'committee_member',所以我猜我的查询语法是错误的 package m

我正在尝试从我的工作台将SQL查询转换为java。 我在mySQL工作台中编写了这个查询,它执行得很好,得到了我想要的结果

选择委员会成员。成员可以,成员。姓名,成员。姓氏,委员会成员。成员状态,委员会成员。开始年,委员会成员。结束年,委员会成员。添加注释 从委员会成员左加入成员 委员会成员

下面是我的.java类代码。我正在尝试打印显示此信息的表。 我一直收到一个错误,在eclipse中读取字段列表中的未知表'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;
  }



  }
使用别名,如:


连接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();

这是left join的示例尝试一下..

Hmm,感谢您迄今为止的帮助。我重新构造了我的查询,现在看起来是这样的:选择m.CAN、m.first\u name、m.last\u name、+cm.member\u status、cm.start\u year、cm.end\u year、cm.added\u notes+FROM committee\u member cm LEFT JOIN member m ON m.CAN=cm.member\u CAN;但它仍然不起作用,我得到了相同的错误:字段列表中的未知表“committee_member”
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();