안드로이드 스튜디오 게시판 MySQL - andeuloideu seutyudio gesipan MySQL

안드로이드는 보안상 DB서버와 바로 연결할 수 없다고 한다.

그래서 

안드로이드 앱 - php/jsp(주로 php) - 서버

이런 구조로 db서버와 연결을 한다.

php자료는 검색해보니 상당히 많이 나오던데 jsp는 나오긴 하지만 php보다는 적다ㅠ

php가 아무리 쉽다고들 하지만, 나는 jsp를 알기때문에 jsp로 만든다..

서버는 MySql을 사용할 것이다.

우선 jsp와 MySQL을 연동해준다

먼저 기초작업.

커넥터-j를 이곳저곳에 뿌려주기

여러군데에 다 안뿌려도 된다. 프로젝트안에 넣는게 보통인듯한데, 나는 편의상 톰캣에 넣는다

//coldsummernight.tistory.com/entry/mySQl%EA%B3%BC-JAVA-%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0-connecter-j

mySQl과 JAVA 연결하기 (connecter-j)

1. 내컴퓨터 C:\Program Files (x86)\MySQL\Connector J 5.1 에서 mysql-connector-java-5.1.48-bin 복사 2. C:\Program Files\Java\jre1.8.0_221\lib\ext 에 붙여넣기(관리자 권한 필요) 2-1. C:\Program Files..

coldsummernight.tistory.com

게시판의 기본은 CRUD 인데, 일단 쉬운 Read부터 한다.

먼저 모든 글 다 가져오는 페이지를 만든다.

list.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR" import="java.sql.*, org.json.*"%> <% request.setCharacterEncoding("utf-8"); Connection conn = null; PreparedStatement ptst = null; ResultSet rs = null; JSONArray jArray = new JSONArray(); try { Class.forName("com.mysql.cj.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=UTC", "root", "1234"); String sql = "select * from dbtest"; ptst = conn.prepareStatement(sql); rs = ptst.executeQuery(); int index = 0; while (rs.next()) { JSONObject jObject = new JSONObject(); jObject.put("no", rs.getString("no")); jObject.put("title", rs.getString("title")); jObject.put("content", rs.getString("content")); jArray.put(index, jObject); index++; } out.println(jArray); } catch (Exception e) { e.printStackTrace(); } finally { if (rs != null) { rs.close(); } if (ptst != null) { ptst.close(); } if (conn != null) { conn.close(); } } %>

test는 내 스키마 이름, dbtest는 테이블 이름, root는 db계정 명, 1234는 비밀번호이다.

칼럼은 no, title, content 세개로 구성했다

(가장 간단한 구성.... 가장 쉽고 easy....)

나머지는 나중에 생각날때 추가....

WriteBoard.php

<?php $con = mysqli_connect("localhost","chad76","asdf070612","chad76"); $bulletinTitle = $_POST["bulletinTitle"]; $bulletinSubject = $_POST["bulletinSubject"]; $bulletinGrade = $_POST["bulletinGrade"]; $bulletinContent = $_POST["bulletinContent"]; $statemente = mysqli_prepare($con, "INSERT INTO BOARD VALUES(?, ?, ?, ?)"); mysqli_stmt_bind_param($statemente, "ssss", $bulletinTitle, $bulletinSubject, $bulletinGrade, $bulletinContent); mysqli_stmt_execute($statemente); $response = array(); $response["success"] = true; echo json_encode($response); ?>

WriteRequest.java

public class WriteRequest extends StringRequest { final static private String URL= "//chad76.cafe24.com/WriteBoard.php"; private Map<String, String> parameters; public WriteRequest(String bulletinTitle, String bulletinSubject, String bulletinGrade, String bulletinContent, Response.Listener<String> listener){ super(Method. POST, URL, listener, null); parameters= new HashMap<>(); parameters.put( "bulletinTitle", bulletinTitle); parameters.put( "bulletinSubject", bulletinSubject); parameters.put( "bulletGrade", bulletinGrade); parameters.put( "bulletContent", bulletinContent); } @Override public Map<String, String> getParams(){ return parameters; } }

WriteActivity.java

public class WriteActivity extends AppCompatActivity { Button writeButton; Spinner subjectSpinner, gradeSpinner; ArrayAdapter subjectAdapter, gradeAdapter; EditText titleText, contentText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout. activity_write); titleText=(EditText)findViewById(R.id. titleText); contentText=(EditText)findViewById(R.id. contentText); subjectSpinner=(Spinner)findViewById(R.id. subjectSpinner); gradeSpinner=(Spinner)findViewById(R.id. gradeSpinner); subjectAdapter= ArrayAdapter. createFromResource( this,R.array. subject,android.R.layout. simple_dropdown_item_1line); subjectSpinner.setAdapter( subjectAdapter); gradeAdapter=ArrayAdapter. createFromResource( this,R.array. grade,android.R.layout. simple_dropdown_item_1line); gradeSpinner.setAdapter( gradeAdapter); writeButton=(Button)findViewById(R.id. writeButton); writeButton.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { String title = titleText.getText().toString(); String subject= subjectSpinner.getSelectedItem().toString(); String grade= gradeSpinner.getSelectedItem().toString(); String content = contentText.getText().toString(); if (title.equals( "") || content.equals( "")) { Toast. makeText(getApplicationContext(), "빈칸을 모두 체워주세요", Toast. LENGTH_LONG).show(); return; } Response.Listener<String> responseListener = new Response.Listener<String>() { @Override public void onResponse(String response) { try { JSONObject jsonResponse = new JSONObject(response); boolean success = jsonResponse.getBoolean( "success"); if (success) { Toast. makeText(getApplicationContext(), "글 쓰기를 성공하였습니다", Toast. LENGTH_LONG).show(); Intent intent = new Intent(WriteActivity. this, PediaActivity. class); WriteActivity. this.startActivity(intent); } else { Toast. makeText(getApplicationContext(), "글 쓰기를 실패하였습니다", Toast. LENGTH_LONG).show(); } } catch (JSONException e) { e.printStackTrace(); } } }; WriteRequest writeRequest = new WriteRequest(title, subject, grade, content, responseListener); RequestQueue queue = Volley. newRequestQueue(WriteActivity. this); queue.add(writeRequest); } }); } }

DB정보

글 쓰기가 성공했다는 토스트까지는 뜨는데 정작 DB에는 추가가 되지 않았습니다 

수정해야 하는 부분을 알려주셨으면 합니다

Toplist

최신 우편물

태그