Java 如何在mysql数据库中查询特定实体
我试图弄清楚如何在mysql数据库中查询特定歌曲。这个想法是通过歌曲的id来查找歌曲,因此如果我传递id,浏览器窗口中就会出现一首歌曲Java 如何在mysql数据库中查询特定实体,java,rest,jpql,Java,Rest,Jpql,我试图弄清楚如何在mysql数据库中查询特定歌曲。这个想法是通过歌曲的id来查找歌曲,因此如果我传递id,浏览器窗口中就会出现一首歌曲 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
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();
}
创建查询对象并设置参数值,然后获取单行
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();
TypedQuery query=em.createQuery(“从歌曲s中选择s,其中s.songID=:id”,Song.class);
query.setParameter(1,id)//不知道我的身份证是什么
Song-Song=query.getSingleResult();
问题是什么?我没有收到歌曲。你能给我们提供更多信息吗?您是否收到错误消息?如果是,错误是什么?SELECT s FROM Song s
是列的名称s
?我在空白窗口中什么也没有得到。