我做了一个留言板,在message.htm中我已经做好了留言板的框架,包括姓名,EMAIL,性别,主题,留言,这些我都在数据库test中建好表message了,已经把tomcat和mysql启动了,当我在留言板中写好内容,准备提交,要把所写的内容insert表message时,却出现了问题:
javax.servlet.ServletException: Can not issue data manipulation statements with executeQuery().我要把留言记录到数据库的程序代码如下,大家帮我看看在写JDBC的时候是不是有什么问题<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
%@include file="convert.jsp"%>
<%@page contentType="text/html;charset=GB2312"%>
<%
//大家帮我看看这里有没有错误 Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=GBK","root","505505");
Statement smt=con.createStatement();
ResultSet rs;
String sql;
String name,email,subject,memo,sex;name=request.getParameter("name");
email=request.getParameter("email");
subject=request.getParameter("subject");
memo=request.getParameter("memo");
sex=request.getParameter("sex");if(name.length()==0||email.length()==0||subject.length()==0||memo.length()==0)
{
out.print("<center><font color=red size=6>输入字段不能为空</font>");
out.print("<hr><a href=board.jsp>回留言看板 </a>" );
out.print("<a href=message.html> 我要留言</a>");
}
else
{
int count=0,year,month,day,hour,minute,second,lastp;
String time;GregorianCalendar calendar;
calendar=new GregorianCalendar();
year=calendar.get(Calendar.YEAR);
month=calendar.get(Calendar.MONTH)+1;
day=calendar.get(Calendar.DAY_OF_MONTH);
hour=calendar.get(Calendar.HOUR);
minute=calendar.get(Calendar.MINUTE);
second=calendar.get(Calendar.SECOND);time=year+"年"+month+"月"+day+"日"+hour+":"+minute+":"+second;name=convert(name);
time=convert(time);
subject=convert(subject);
memo=Replace(memo);
memo=convert(memo);//大家帮我看看这里有没有错误
sql="insert into message set name="+name+",email="+email+",subject="+subject+",time="+
time+",sex="+sex+",memo="+memo;
smt.executeQuery(sql);
sql="select * from message";
rs=smt.executeQuery(sql);
while(rs.next())
count++;lastp=(int)Math.ceil((double)count/5);
response.sendRedirect("board.jsp?pageno="+lastp);}
%>
<html>
<title>错误信息</title>
</html>
javax.servlet.ServletException: Can not issue data manipulation statements with executeQuery().我要把留言记录到数据库的程序代码如下,大家帮我看看在写JDBC的时候是不是有什么问题<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
%@include file="convert.jsp"%>
<%@page contentType="text/html;charset=GB2312"%>
<%
//大家帮我看看这里有没有错误 Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=GBK","root","505505");
Statement smt=con.createStatement();
ResultSet rs;
String sql;
String name,email,subject,memo,sex;name=request.getParameter("name");
email=request.getParameter("email");
subject=request.getParameter("subject");
memo=request.getParameter("memo");
sex=request.getParameter("sex");if(name.length()==0||email.length()==0||subject.length()==0||memo.length()==0)
{
out.print("<center><font color=red size=6>输入字段不能为空</font>");
out.print("<hr><a href=board.jsp>回留言看板 </a>" );
out.print("<a href=message.html> 我要留言</a>");
}
else
{
int count=0,year,month,day,hour,minute,second,lastp;
String time;GregorianCalendar calendar;
calendar=new GregorianCalendar();
year=calendar.get(Calendar.YEAR);
month=calendar.get(Calendar.MONTH)+1;
day=calendar.get(Calendar.DAY_OF_MONTH);
hour=calendar.get(Calendar.HOUR);
minute=calendar.get(Calendar.MINUTE);
second=calendar.get(Calendar.SECOND);time=year+"年"+month+"月"+day+"日"+hour+":"+minute+":"+second;name=convert(name);
time=convert(time);
subject=convert(subject);
memo=Replace(memo);
memo=convert(memo);//大家帮我看看这里有没有错误
sql="insert into message set name="+name+",email="+email+",subject="+subject+",time="+
time+",sex="+sex+",memo="+memo;
smt.executeQuery(sql);
sql="select * from message";
rs=smt.executeQuery(sql);
while(rs.next())
count++;lastp=(int)Math.ceil((double)count/5);
response.sendRedirect("board.jsp?pageno="+lastp);}
%>
<html>
<title>错误信息</title>
</html>
解决方案 »
- JTable中remove(r)与fireTableRowsDeleted(r, r)区别?
- java 基础问题 关于byte
- 这样的JTree该怎么实现啊?
- static 方法不能被重写??
- 大家好, 有一个java包访问的问题请教一下
- 内部类继承问题
- 【在线等....】关于TCP处理消息边界问题,求大神指点!!!
- 线程之间有几种通讯方式?
- 有用代码生成工具(R-O Map)的吗?交流交流。
- 关于java对象的声明和实例对象的引用和类型的强制转换问题
- 数组的length属性:byte[][] a; int i=a.length这里的i值应是多少?
- MessageFormat要格式化得message如果包含{或者}如何处理
PreparedStatement pst = connection.prepareStatement(cmd);
pst.setString(1,"12345");
File img = new File(file);
System.out.println(img.length());
pst.setBinaryStream(2,new FileInputStream(file),(int)(img.length()));
pst.executeUpdate();
time+",sex="+sex+",memo="+memo;你的time是什麼類型的??這句話在mysql裡可以運行嗎?試試
sql="insert into message set name='"+name+"'"还是用 believefym(暮色,miss,迷失,miss) 说的PreparedStatement 要方便的多
pstmt.setString(1,name);
pstmt.setString(2,email);
pstmt.setString(3,subject);
pstmt.setString(4,time);
pstmt.setString(5,sex);
pstmt.setString(6,memo);
我的程序用这样可以把,可是我发现是可以记录到数据库中,可是浏览器页面又出错了,有错误提示是:
javax.servlet.ServletException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'between1and5' at line 1