Я пытаюсь найти способ сделать SELECT EXISTS в dropwizard, потому что я создаю запрос POST, который создает профили. Каждый профиль имеет свой идентификационный номер. Я делаю это потому, что не могу создать профиль с таким же идентификатором в другом профиле. Как мне сделать SELECT EXISTS в dropwizard, который возвращает int. Возвращает 1, если истина, и 0, если ложь, как в mySQL. Если 1, то профиль существует и не может создать другой профиль с тем же идентификатором. Я считаю, что я должен использовать createQuery. Есть ли способ, которым я могу использовать SELECT EXISTS в dropwizard
int j = handle.createQuery("SELECT EXISTS(SELECT * FROM profile WHERE id='"+id+"')");
Я пытался использовать execute, но он все время возвращает -1.
int j = handle.execute("SELECT EXISTS(SELECT * FROM profile WHERE id='"+id+"')");
МОЙ POST CODE
@POST
@Path("/profile")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response createProfile(Profile newp)
{
Jdbi jdbi = Jdbi.create("jdbc:mysql://localhost:3306/homework", "root", "linuxserver");
Handle handle = null;
try
{
handle = jdbi.open();
int check = 0;
/*Want my check to return a 1 or a 0*/
check = handle.createQuery("select exists(select * from profile where id='"+newp.getId()+"')"); /
System.out.println(check);
System.out.println(newp.getId());
if(check == 1)
{
return Response.status(500, "ID already exists").build();
}
else
{
handle.execute("INSERT INTO profile (id,name,lastname,age,favTeam)" +
"VALUES('" + newp.getId() + "' , '"+newp.getUsername()+ "' , '"+newp.getLastname()+"', '"+newp.getAge()+"' , '"+newp.getFavTeam()+"')");
return Response.ok().build();
}
}finally
{
if(handle != null)
handle.close();
}
}