jsp,spring,php

(php,mysql)서울시 도서관 검색

코딩 공부중 2019. 2. 11. 19:49

공공데이터 api와 데이터베이스 그리고 php와 html을 활용해 만든 서울시 도서관검색 웹페이지 입니다.


	//html 사용을 위한 코드
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>	//jsp로 글자입력
<%@ page import="java.sql.*" %>	//jsp사용
<%@ page info = "test2.jsp" contentType="text/html; charset=utf-8" %>
<% request.setCharacterEncoding("utf-8");%>

//action과 post메소드를 사용하여 체크박스 정보를 넘겨줌 서울시 도서관 검색
client(id) : //id입력을 위한 text 타입 검색어 : //검색어 입력창 도서관 명 주소 휴관일 전화번호 좌표x 좌표y //여기까지 체크박스 입력창
<% String URL="jdbc:mysql://localhost/"; //데이터베이스와 연동을 위한 주소를 변수에 저장 String USER = ""; //계정 id, APMSETUP은 기본적으로 root String PASS=""; //마찬가지로 APMSETUP은 기본적으로 apmsetup Connection conn=null; //주소 입력을 위해 null값으로 변수 선언 Statement stmt = null; ResultSet rs = null; ResultSet rs2 = null; PreparedStatement pstmt=null; String search = request.getParameter("search"); //위 html에서 받아온 검색어 및 체크박스 정보를 string변수에 저장 String id = request.getParameter("id"); String table = request.getParameter("table"); String sql = "select * from library2"; //select문 사용을 위해 sql변수에 select문 저장 String sqlid = "insert into ipid(id,search,ip) values(?, ?, ?)";//id와 ip 그리고 검색어 저장을 위한 테이블 내용 추가 if(table != null && search != null){ //체크박스와 검색어가 입력이 되면 if문 실행 if(table.equals("name")){ //각 if문에서 equals함수를 통해 일치하는지 확인 sql += " where name like '%" + search + "%'"; //일치하면 sql에 where like 특정 단어 검색 명령어를 입력하고 거기에 html에서 받아온 검색어 변수를 넣어줌 } else if(table.equals("gu")){ sql += " where gu like '%" + search + "%'"; }else if(table.equals("addr")){ sql += " where addr like '%" + search + "%'"; }else if(table.equals("closed")){ sql += " where closed like '%" + search + "%'"; }else if(table.equals("phone")){ sql += " where phone like '%" + search + "%'"; }else if(table.equals("gpsx")){ sql += " where gpsx like '%" + search + "%'"; }else if(table.equals("gpsy")){ sql += " where gpsy like '%" + search + "%'"; } } //if문 종료 try { //예외처리 함수를 이용하여 jsp와 mysql을 연동 Class.forName("com.mysql.jdbc.Driver"); // mysql을 사용(JDBC) conn = DriverManager.getConnection(URL, USER, PASS); // 아이디, 비밀번호, 주소를 넣고 >연결 stmt = conn.createStatement(); rs = stmt.executeQuery(sql);// if문을 통해 검색한 내용이 저장된 sql은 rs변수에 저장 while(rs.next()) { //while 루프를 통해 검색이 완료된 테이블 내용을 모두 출력함 out.print(rs.getString("name")+"\t");//gesString을 이용하여 검색한 내용 출력 out.print(rs.getString("gu")+"\t"); out.print(rs.getString("addr")+"\t"); out.print(rs.getString("closed")+"\t"); out.print(rs.getString("phone")+"\t"); out.print(rs.getString("gpsx")+"\t"); out.print(rs.getString("gpsy")+"\t"); out.print("\n"); } pstmt = conn.prepareStatement(sqlid); // prepareStatement sql pstmt.setString(1,id); //앞서 만들어 놓은 ipid테이블에 id와 검색어를 저장시킴 pstmt.setString(2,search); pstmt.setString(3,request.getRemoteAddr()); //getRemoteAddr는 사용자의 ip를 추출하는 명령어 pstmt.executeUpdate(); }catch(SQLException e) { //try문 종료 e.getMessage(); } finally { if(rs != null)try{rs.close();}catch(SQLException ex){} if(stmt != null)try{stmt.close();}catch(SQLException ex){} if(conn != null)try{conn.close();}catch(SQLException ex){} } %>

실행화면

처음 접속한 화면입니다. 검색어 입력창과 체크박스 란이 있고

그 밑에 현재 들어가져 있는 데이터들이 보이게끔 했습니다.

검색어 입력창입니다. 검색하고자 하는 주제를 체크박스에 체크하고 id와 검색어를 입력한 뒤

검색 버튼을 누릅니다.


검색버튼을 누르면 밑에 검색한 내용이 나오게 됩니다.

저는 LH를 검색해서 도서관명에 LH가 들어있는 모든 도서관 정보를 확인할 수 있습니다.


mysql을 통해 방금 검색한 id와 검색어 그리고 ip주소가 입력된 것을 확인할 수 있습니다.


사용한 url : http://data.seoul.go.kr/dataList/datasetView.do?infId=OA-2240&srvType=S&serviceKind=1&currentPageNo=1

출처 - 서울열린데이터광장