마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 일정버전 이하에서 DB업데이트

0 추천

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부분은 보안상 **로 처리했습니다. 원본에서는 정상작동합니다

Jou (160 포인트) 님이 2018년 9월 11일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...