मैं यह पता लगाने की कोशिश कर रहा हूं कि एक MySQL डेटाबेस में किसी विशिष्ट गीत को कैसे क्वेरी करें। विचार यह है कि गानों को उनकी आईडी से ढूंढा जाए ताकि अगर मैं आईडी पास करूं तो एक गाना ब्राउज़र विंडो में दिखाई देना चाहिए।

public class Song {

private int id = 0;
private String title;
private String artist;
private String album;
private int released;

public Song() {
}

public Song(int id, String title, String artist, String album, int released) {
    this.id = id;
    this.title = title;
    this.artist = artist;
    this.album = album;
    this.released = released;
}
@Id
@Column(name = "songID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Integer getId() {
    return id;
}

SongWebService.java

    @GET
    @Path("/{id}")
    @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Response getSongById() { 

    Object song = null;
    try {
        em.getTransaction().begin();            
        song = em.createQuery("SELECT s FROM Song s WHERE s.songID = :id", Song.class).getSingleResult();
        em.getTransaction().commit(); 
    } catch (NoResultException e) {
        Response.noContent().build();
    } catch (Exception ex) {
        ex.printStackTrace();
        em.getTransaction().rollback();
    } finally {
        em.close();
    }
    return Response.ok(song).build();
}
0
Marta 3 जून 2019, 13:17

1 उत्तर

सबसे बढ़िया उत्तर

एक क्वेरी ऑब्जेक्ट बनाएं और पैरामीटर मान सेट करें और फिर एकल पंक्ति प्राप्त करें

TypedQuery<Song> query =  em.createQuery("SELECT s FROM Song s WHERE s.songID = :id", Song.class);
query.setParameter(1, id); //not sure what id 
Song song = query.getSingleResult();
1
Joakim Danielson 3 जून 2019, 10:54