ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Ubuntu MariaDB + JSP RESTAPI request 받아 XML response 해보기
    start linux 2021. 9. 4. 13:41

    Ubuntu 에 MariaDB를 설치하고 사용자 설정을 했습니다.

    MariaDB JDBC 자바 connector 설치했구요 

    root@ncpmicro:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext# ls mariadb-java-client-3.0.0-alpha.jar
    mariadb-java-client-3.0.0-alpha.jar

     

    그리고 CSV 형식으로 작성된 텍스트 파일로 데이터를 MariaDB에 LOAD 했습니다.

    tomcat 서버를 설치하고 여기에도 MariaDB connector 를 설치했습니다. 

    root@ncpmicro:/home/tomcat/lib# ls mariadb-java-client-3.0.0-alpha.jar
    mariadb-java-client-3.0.0-alpha.jar

    JSP 가 기본적으로 동작하는지 확인한 다음

    파라미터를 받아 MariaDB에 쿼리를 날려 xml 형식으로 값을 받아오고자 합니다.

    샘플 코드입니다.

    <%@ page import = "java.sql.*" %>
    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
    <%
            String param1 = request.getParameter("Param1");
            String param2 = request.getParameter("Param2");
    
            StringBuffer sb =  new StringBuffer();
    
            response.setContentType("text/xml");
            response.setCharacterEncoding("utf-8");
    
            Statement stm = null;
            ResultSet rs = null;
    
            Class.forName("org.mariadb.jdbc.Driver");
            String myUrl = "jdbc:mariadb://serverip/test_db";
            Connection conn = DriverManager.getConnection(myUrl, "user01", "1234");
            try {
                    stm = conn.createStatement();
                    String sql = "";
                    if (param1 != null && param2 != null && param1 != "null" && param2 != "null" && param2 != ""){
                            sql = "select * from test_table where title LIKE '%" + param1 + "%' or  title LIKE '%" + param2 + "%';";
                    } else {
                            sql = "select * from snim_table where title LIKE '%" + param1 + "%';";
                    }
                    if(stm.execute(sql)) {
                            rs = stm.getResultSet();
                    }
    
                    sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
                    sb.append("<DataInfo>");
                    while(rs.next()) {
                            sb.append("<row>");
    
                            sb.append("<title>");
                            sb.append(rs.getString("title"));
                            sb.append("</title>");
    
                            sb.append("<desc>");
                            sb.append(rs.getString("desc"));
                            sb.append("</desc>");
                            
                            sb.append("</row>");
                    }
                    sb.append("</DataInfo>");
                    rs.close();
                    stm.close();
            }
                    catch(Exception e) {
                    out.println("rs.next() ERROR");
            }
            conn.close();
            response.getWriter().println(sb.toString());
    %>
Designed by Tistory.