GET-запрос не передается в сервлет Arduino Java MySQL
Я новичек в этой теме. Помогите, пожалуйста, решить вопрос с передачей данных в таблицу MySQL из устройства. У меня на локальном сервере создан сервлет с doGet. В качестве параметров он принимает температуру и влажность и записывает их в БД:
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
String temp = request.getParameter("temp");
String hum = request.getParameter("hum");
try {
writer.println("<h2>Temperature: " + temp + "; Humidity: " + hum + "</h2>");
} finally {
writer.close();
}
// create Table
String sqlCreateTable = "CREATE TABLE parameters (Temperature INT , Humidity INT )";
Connection conn = null;
try {
conn = DriverManager.getConnection(url, username, password);
Statement statement = conn.createStatement();
statement.executeUpdate(sqlCreateTable);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
// update Table
try {
String sql = "INSERT INTO parameters (Temperature, Humidity) Values (?, ?)";
PreparedStatement preparedStatement = conn.prepareStatement(sql);
preparedStatement.setInt(1, Integer.parseInt(temp));
preparedStatement.setInt(2, Integer.parseInt(hum));
preparedStatement.execute();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("Connection Failed! Check output console");
} finally {
try {
if(conn != null) conn.close();
System.out.println("Connection closed !!");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Далее я на стороне Ардуинки пытаюсь писать передачу запроса в созданный мною сервлет:
void loop(){
WiFiClient client = server.available();
int t = bme.readTemperature();
int h = bme.readHumidity();
Serial.println(t);
Serial.println(h);
String url = "/postRequest_war_exploded/?temp="+(String)t+"&hum="+(String)h;
Serial.print("Sending URL: ");
Serial.print(host);
Serial.println(url);
client.print(String("GET ")+url+" HTTP/1.1\r\nHost: "+host+"\r\nConnection: close\r\n\r\n");
сlient.flush();
delay(30000);
}
Ping от устройства к локальному компьютеру есть. Но запись в БД почему-то не происходит.
Ответы (1 шт):
Автор решения: Roman C
→ Ссылка
Но запись в БД почему-то не происходит.
Надо учить jdbc, при выплнении DML используйте
preparedStatement.executeUpdate();