2013-04-24 2 views
0

나는 event, gebruiker 및 situatie 테이블을 가진 MySQL 데이터베이스 (데이터베이스)를 가지고있다. 이제 넷빈을 사용하여 Java로 코드를 작성하여 편안한 웹 서비스를 테스트해야합니다. 나는 모든 사용자 (= gebruikers, dutch)를 검색 할 수 있지만 기본 사용자 이름 'Username'을 검색하여 특정 사용자 한 명을 검색하려는 경우, 잔잔한 웹 서비스를 테스트 할 때이 500 오류가 발생합니다. 도와주세요! 이 자바에 내 코드입니다 :자바에서 mysql의 특정 사용자 1 명 요청하기

@Stateless 
@Path("gebruikers") 
public class GebruikerService { 

@Resource(name = "jdbc/socialebuurt") 
private DataSource source; 

/* 
* Request all users. 
*/ 

@GET 
@Produces(MediaType.APPLICATION_JSON) 
public List<Gebruiker> getGebruikers() { 
    try (Connection conn = source.getConnection()) { 
     try (PreparedStatement stat = conn.prepareStatement("SELECT * FROM gebruiker")) { 
      try (ResultSet rs = stat.executeQuery()) { 
       List<Gebruiker> results = new ArrayList<>(); 
       while (rs.next()) { 
        Gebruiker g = new Gebruiker(); 
        g.setUsername(rs.getString("Username")); 
        g.setNaam(rs.getString("Naam")); 
        g.setVoornaam(rs.getString("Voornaam")); 
        g.setStraat(rs.getString("Straat")); 
        g.setHuisNr(rs.getInt("huisnr")); 
        g.setPostcode(rs.getInt("postcode")); 
        g.setGemeente(rs.getString("gemeente")); 
        g.setWachtwoord(rs.getString("wachtwoord")); 
        results.add(g); 
       } 
       return results; 
      } 
     } 
    } catch (SQLException ex) { 
     throw new WebApplicationException(ex); 
    } 
} 


/* 
* Request one specific user. 
*/ 

@Path("{username}") 
@GET 
@Produces(MediaType.APPLICATION_JSON) 
public Gebruiker getGebruiker(@PathParam("username") String username) { 
    try (Connection conn = source.getConnection()) { 
     try (PreparedStatement stat = conn.prepareStatement("SELECT * FROM gebruiker WHERE username = ?")) { 
      stat.setString(1,""); 
      try (ResultSet rs = stat.executeQuery()) { 
       if (rs.next()) { 
        Gebruiker ge = new Gebruiker(); 
        ge.setUsername(rs.getString("Username")); 
        ge.setNaam(rs.getString("Naam")); 
        ge.setVoornaam(rs.getString("Voornaam")); 
        ge.setStraat(rs.getString("Straat")); 
        ge.setHuisNr(rs.getInt("huisnr")); 
        ge.setPostcode(rs.getInt("postcode")); 
        ge.setGemeente(rs.getString("gemeente")); 
        ge.setWachtwoord(rs.getString("wachtwoord")); 
        return ge; 
       } else { 
        throw new WebApplicationException(Status.NOT_FOUND); 
       } 
      } 
     } 
    } catch (SQLException ex) { 
     throw new WebApplicationException(ex); 
    } 
} 
} 

테이블 'gebruiker'속성 다음있다 : 사용자 이름 (기본 키, VARCHAR (26)), 나암 (텍스트), voornaam (텍스트), STRAAT (텍스트), huisNr을 (int (11)), 우편 번호 (int (4)), gemeente (텍스트), wachtwoord (텍스트). 자세한 정보가 필요하면 질문하십시오. 감사합니다.

답변

0

이 같은 명세서에 WHERE 절을 가질 필요가 :

"SELECT * FROM gebruiker WHERE username =" + username;