DB에 업데이트를 하는데 안드로이드 7.0 이상에서는 업데이트가 잘 이루어 지는데, 안드로이드 6.0버젼 이하에서는
InputStreamReader isr = new InputStreamReader(conn.getInputStream());
로그로 확인해 보았을때, 이부분이 실행이 되지 않더군요..
전체 코드입니다.
public class DBUpdate extends AsyncTask<String, String, String> {
protected String doInBackground(String... urls) {
StringBuffer mem_Buffer = new StringBuffer();
HttpURLConnection conn = null;
try {
URL url = new URL(urls[0]);
conn = (HttpURLConnection) url.openConnection();
if (conn != null) {
conn.setConnectTimeout(20000);
conn.setUseCaches(false);
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
// 서버에서 읽어오기 위한 스트림 객체
InputStreamReader isr = new InputStreamReader(conn.getInputStream());
// 줄단위로 읽어오기 위해 BufferReader로 감싼다.
BufferedReader br = new BufferedReader(isr);
// 반복문 돌면서읽어오기
while (true) {
String line = br.readLine();
if (line == null) {
break;
}
mem_Buffer.append(line);
}
br.close();
conn.disconnect();
}
}
} catch (IOException e) {
return "오류발생";
} finally {
conn.disconnect();
return String.valueOf(mem_Buffer);
}
}
protected void onPostExcute() {
return;
}
}
고수님들 도와주세요...ㅠㅠ 제가 안드로이드 특정 버전이하에서는 설정을 다르게 해야하는지두요...
DB sql이 insert일때에는 잘 되는 반명에 update는 미동도 하지 않습니다.. 또 어떤 insert는 무조껀 되는 반면에 어떤 insert는 반응도 없습니다.
저장하는 방식은 jsp를 통해 저장합니다.
아래는 문제가되는 insert.jsp파일입니다.
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/**", "**" , "**");
ResultSet rs = null;
PreparedStatement stmt = null;
boolean flagStatus = false;
request.setCharacterEncoding("UTF-8");
String cmpid = request.getParameter("cmpid");
String pnum = request.getParameter("pNum");
String date = request.getParameter("StartDate");
String time = request.getParameter("StartTime");
String text = request.getParameter("Text");
StringBuffer sql = new StringBuffer();
sql.append("INSERT INTO cmp_outwork(CmpID, PhoneNum, SDate,STime,Text) ")
.append("values("+cmpid+","+pnum+","+date+","+time+","+text+");");
stmt = conn.prepareStatement(sql.toString());
stmt.executeUpdate();
%>
중간에 localhost부분은 보안상 **로 처리했습니다. 원본에서는 정상작동합니다