2013-11-22 17 views
8
<%@ page language="java" contentType="text/html; charset=EUC-KR" 
    pageEncoding="EUC-KR"%> 
<%@ page import ="java.sql.*" %> 
<%@ page import = "com.mysql.jdbc.Driver" %> 
<jsp:useBean id="vo" class="my.member.MemberVo"/> 
<jsp:setProperty property="*" name="vo"/> 
<% 

    Connection conn = null; 
    Statement stmt = null; 
    PreparedStatement ps = null; 

    String queryPerson = new String(); //Query statement 
    String queryUserInfo = new String(); 
    String queryAccount = new String(); 

    try { 
    Class.forName("org.gjt.mm.mysql.Driver"); 
    } catch (ClassNotFoundException e) { 
     System.out.println("JDBC error"); 
    } 
    try{ 
    conn = DriverManager.getConnection("jdbc:mysql://mysql2.cs.stonybrook.edu/jaehyeolee", "root", ""); 
    } catch(SQLException e) { 
     System.out.println("Database Error"); 
    } 
    System.out.println("Database connected"); 


    try{ 
     stmt = conn.createStatement(); 


     queryAccount = "insert into member values('testID','password','name');"; 
     System.out.println(queryAccount); 
     stmt.executeQuery(queryAccount); 
    }catch(SQLException e){ 
     System.out.println("not inserted!"); 
    }finally{ 
     conn.close(); 
    } 

%> 

Bu, jsp dosyasındaki gerçekten basit mysql sorgum. Değerleri tablo üyesine eklemek istiyorum (kimlik, parola, ad) ancak bir istisnasını atmaya devam ediyor ve "takılı değil!".SQLException: "executeQuery() ile veri işleme bildirimleri veremiyor"() "

Bir istisnanın nedenini bilen var mı? Dün öğlen 'dan anlamaya çalıştım ama hala sebebini bilmiyorum.

Lütfen yardım edin!

İşte yığın izim! Yerine ExecuteQuery ait()

Database connected 
java.sql.SQLException: Can not issue data manipulation statements with executeQuery(). 
insert into member('userid','password','name') values('jhlee127','108512012','JayZ'); 
not inserted! 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920) 
    at com.mysql.jdbc.StatementImpl.checkForDml(StatementImpl.java:499) 
    at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1518) 
    at org.apache.jsp.member.regFormProc_jsp._jspService(regFormProc_jsp.java:109) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) 
    at java.lang.Thread.run(Thread.java:695) 
+1

Eğer istisna bir yığın izleme var mı? – Rogue

+0

, 'takılı değil' yerine e yazdırmalısınız, hatayı daha fazla ışık tutabilir. Bize üye şemasını da göster, Kimlik sütunu bir dizeyi kabul ediyor mu? – OGHaza

+0

@Rogue i istisnanın yığın izini koydu. – jkl

cevap

20

:

stmt.executeQuery(queryAccount); 

kullanım:

stmt.executeUpdate(queryAccount); 
+0

evet! işe yarıyor! Çok teşekkür ederim! günümü kurtardın !!! – jkl

2

Sen statement.executeUpdate yerine statement.executeQuery

3

Benim Java aramaya gerek çok paslı, ama executeUpdate() yönteminin çeşit burada kullanılması gereken yok?

+0

Teşekkürler. Gerçekten yardımcı oldu! – jkl

3
PreparedStatement ps = conn.prepareStatement("insert into member (testID, password, name) values (?, ?, ?)"); 
ps.setInt(1, idValue); 
ps.setString(2, passwordValue); 
ps.setString(3, nameValue); 
try { 
    ps.executeUpdate(); 
    ps.close(); 
} 

Bunu deneyin ve giderilip giderilmediğini bildirin. Yerine