Я очень новичок в JAVA, и мне нужно создать SMP на основе HTTP RESTful API, и я работаю над первым API, который должен создать пользователя и вставить его в базу данных. Я уже создал базу данных и таблицы в MYSQL. Я нашел пример кода в сети, и я пытаюсь изменить его так, чтобы он работал для того, что мне нужно, но он не работает, без ошибок, просто не помещая ничего в базу данных. Описание API с ожидаемым выводом плюс код, который у меня есть, приведен ниже. Не весь код, просто код этого API. Так что любая помощь по поводу того, что я делаю неправильно и что мне нужно сделать, чтобы получить его работу, была бы отличной. Также в API. java, где мне нужно поместить каждую конечную точку, и я добавляю вспомогательные функции, которые выполняют функции SQL в DBEngine. java.
/api/createuser // create a new Instatwitsnapbook user
// Input: curl -d '{"handle":"@cooldude42", "password":"mysecret!", "fullname":"Angus Mize", "location":"Kentucky", "xmail":"none@nowhere.com", "bdate":"1970-07-01"}' -H "Content-Type: application/json" -X POST http://localhost:9990/api/createuser (Links to an external site.)
// Output: {"status":"4"} // positive number is the Identity.idnum created.
// Output: {"status":"-2", "error":"SQL Constraint Exception"}. [EDIT 04/14]
// etc.
API. java
@GET
@Path("/createuser")
@Produces(MediaType.APPLICATION_JSON)
public Response createuser() {
String responseString = "{}";
try {
Map<String, String> teamMap = Launcher.dbEngine.getUsers();
responseString = Launcher.gson.toJson(teamMap);
} catch (Exception ex) {
StringWriter sw = new StringWriter();
ex.printStackTrace(new PrintWriter(sw));
String exceptionAsString = sw.toString();
ex.printStackTrace();
return Response.status(500).entity(exceptionAsString).build();
}
return Response.ok(responseString)
.header("Access-Control-Allow-Origin", "*").build();
} // createuser
DBEngine. java
public Map<String,String> createuser() {
Map<String,String> userIdMap = new HashMap<>();
PreparedStatement stmt = null;
try
{
Connection conn = ds.getConnection();
String queryString = null;
queryString = "INSERT INTO Identity (handle, password, fullname, location, xmail, bdate)";
stmt = conn.prepareStatement(queryString);
// No parameters, so no binding needed.
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
//String userId = Integer.toString(rs.getInt("idnum"));
String handle = rs.getString("handle");
String password = rs.getString("pass");
String fullname = rs.getString("fullname");
String location = rs.getString("location");
String xmail = rs.getString("email");
String bdate = rs.getString("bdate");
userIdMap.put(handle, password, fullname, location, xmail, bdate);
}
rs.close();
stmt.close();
conn.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
return userIdMap;
} // createuser()