tomcat中的插入中文到数据库中为什么老是出现错误

tw810610 2003-10-09 07:59:30
<%int fenshu1,tid1;
//String sidd,snamee,cidd,cnamee;
String sid1=new String();
//String sid1="你好";
String sname1=new String();
String cname1=new String();
String cid1=new String();
sid1=Beanid.getsid();
cid1=Beanid.getcid();
tid1=Beanid.gettid();
fenshu1=Beanid.getfenshu();
sname1=Beanid.getsname();
cname1=Beanid.getcname();
//String sidd = new String(sid1.getBytes("GB2312"),"ISO8859_1");
byte[] sid3=sid1.getBytes("ISO8859_1");
sid1=new String(sid3);
byte[] cid3=cid1.getBytes("ISO8859_1");
cid1=new String(cid3);
byte[] sname3=sname1.getBytes("ISO8859_1");
byte[] cname3=cname1.getBytes("ISO8859_1");
cname1=new String(cname3); %>
<% String url="jdbc:odbc:db2";
String sql=new String();
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection(url);
Statement stmt=con.createStatement();
sql="SELECT * FROM score where cid='"+cid1+"'and sname='"+sname1+"'";
ResultSet RS=stmt.executeQuery(sql);
if(RS.next()){
%>
此同学的这门课程分数已经录入。
<%
}
else{
sql="INSERT INTO score(sid,sname,cid,cname,fenshu,tid)VALUES('"+sid1+"','"+sname1+"','"+cid1+"','"+cname1+"','"+fenshu1+"','"+tid1+"')";
stmt.executeUpdate(sql);
con.close();
}
%>
却出现错误如下
org.apache.jasper.JasperException
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
at java.lang.Thread.run(Thread.java:536)



...全文
39 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tw810610 2003-10-09
  • 打赏
  • 举报
回复
我将那些将中文字符转换的注销掉就是
byte[] sid3=sid1.getBytes("ISO8859_1");
sid1=new String(sid3);
byte[] cid3=cid1.getBytes("ISO8859_1");
cid1=new String(cid3);
byte[] sname3=sname1.getBytes("ISO8859_1");
byte[] cname3=cname1.getBytes("ISO8859_1");
cname1=new String(cname3);
就没出现问题了
但是插入数据库的时候又出现乱码
要怎么样才能不出现乱玛呢
xinshou1979330 2003-10-09
  • 打赏
  • 举报
回复
你得服务器里提示得是什么错误啊

<%int fenshu1,tid1;

改成
<%!int fenshu1,tid1;

这样试一下
maqj 2003-10-09
  • 打赏
  • 举报
回复
由你的出错情况无法确定具体是什么原因导致错误,可以试着先将插入注解掉,看搜索能否执行,如果不行,说明连接有问题,总之你要将出错范围慢慢缩小,最后找出真正的出错原因。
lmh7607 2003-10-09
  • 打赏
  • 举报
回复
产生异常了。

sql="SELECT * FROM score where cid='"+cid1+"'and sname='"+sname1+"'";

cid1没有转换。
可以把sql语句打印出来看看,就清楚哪了.



81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧