eastsage
35
2022-05-14 22:34:03
6
151

java sql 오류 도와주실 분 계신가요...


간단한 웹페이지 만들어보고 있는데 왜 오류가 계속 발생하는지 모르겠습니다...


이전 페이지에서 form을 통해 받은 값들을 checked 라는 String배열을 생성해서 넣어준 후
배열의 값들을 조건으로 해서 view를 만들고 그 값을 화면에 테이블로 띄워주려고 하고 있습니다.
String view_sql에서 where p_name in () 부분을 아무리 수정해도 계속 오류가 발생합니다.

아래는 실행했을 때 크롬에서 나타나는 오류입니다.

java.sql.SQLSyntaxErrorException: (conn=90) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'in ('android studio','clion','docker','eclipse','intellij','mysql workbench',...' at line 1

오류 해결하는 방법이 너무 궁금합니다 2일 째 해결하지 못하고 있어요 ㅠㅠ

<%
Statement st = null;
ResultSet rs = null;
request.setCharacterEncoding("UTF-8");
String[] checked = request.getParameterValues("pcheck");

try {
st = null;
st = con.createStatement();
String view_sql = "create or replace view checkedview as " +
"select p_name, p_cpu, p_vga, p_ram, p_ssd " +
"from Program";
view_sql += "where p_name in (";
view_sql += "\'" + checked[0] + "\'";
for(int i = 1; i < checked.length; i++) {
view_sql += ",\'" + checked[i] + "\'";
}
view_sql += ")";
st.execute(view_sql);
String sql = "select * from checkedview";
rs = st.executeQuery(sql);

if (!(rs.next())) {
out.println("일치하는 프로그램이 없습니다.");
} else {
do {
out.println("<tr>");
out.println("<td>" + rs.getString("p_name") + "</td>");
out.println("<td>" + rs.getString("p_cpu") + "</td>");
out.println("<td>" + rs.getString("p_vga") + "</td>");
out.println("<td>" + rs.getInt("p_ram") + "</td>");
out.println("<td>" + rs.getString("p_ssd") + "</td>");
out.println("</tr>");
}while(rs.next());

rs.close();
}

out.println("</TABLE>");
st.close();
con.close();
} catch (java.sql.SQLException e) {
out.println(e);
}


%>
0
  • 답변 6

  • siva6
    5k
    2022-05-14 22:46:46

    생성된

    view_sql

    를 화면에 찍어 보고, DB 쿼리로 직접 날려보세요.

  • zumsim
    2k
    2022-05-14 22:55:46

    'mysql workbench' 이거 공백때문은 아닐까 생각이드는데

    윗분 조언대로  view_sql 찍어서 나오는 쿼리에서 저거 빼고 돌려보셔용

  • siva6
    5k
    2022-05-14 23:02:45

    다시 보니 Programwhere 사이에 공백이 없어서 생긴 문제일 것 같기도 하네요.

  • eastsage
    35
    2022-05-14 23:44:31

    siva6

    zumsim

    두 분다 감사드립니다..

    코드 고칠 때 제정신이 아니었나봐요 원인을 몰라서 하나씩 고치다보니

    원래 문제를 고쳤는데 다른 곳을 바꿔서 또 오류가 나는 상황이었네요ㅠ

    결국 고쳤습니다 감사합니다!!

  • alsdnjsrl
    349
    2022-05-15 11:44:52

    jsp 인가요?


  • eastsage
    35
    2022-05-17 00:52:46
  • 로그인을 하시면 답변을 등록할 수 있습니다.