问题描述
源代码如下:<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>无标题文档</title></head><body><jsp:useBeanid="str"class="test.str_filter"scope="page"/><%try{Class.forName("org.gjt.mm.mysql.Driver");}catch(java.lang.ClassNotFoundExceptione){out.print("classnotfoundexceptionoccur.messageis:");out.print(e.getMessage());}try{Connectioncon;Statementstmt;ResultSetrs;//数据库用户名StringuserName="root";//密码StringuserPasswd="123456";//数据库名StringdbName="faq";//表名StringtableName="first";Stringurl="jdbc:mysql://localhost:3306/"+dbName+"?user="+userName+"&password="+userPasswd;Stringcon_string="jdbc:mysql://localhost:3306/faq?user=root&password=";con=DriverManager.getConnection(url);stmt=con.createStatement();Stringsql1;sql1="createtablefaqs(";sql1=sql1+"idintnotnullAUTO_INCREMENTprimarykey,";sql1=sql1+"subjectchar(200)null,";sql1=sql1+"answertextnull);";stmt.executeUpdate(sql1);stmt.executeUpdate("INSERTINTOfaqsVALUES(1,'问题一','答案a、b、c')");stmt.executeUpdate("INSERTINTOfaqsVALUES(2,'问题二','答案a、b、c')");rs=stmt.executeQuery("Select*fromfaqs");while(rs.next()){Strings1=str.strtochn(rs.getString("subject"));Strings2=str.strtochn(rs.getString("answer"));out.print(s1+"<br>");out.print("<li>"+s2+"<p>");}}catch(SQLExceptione){out.print("sqlexceptionoccur.messageis:");out.print(e.getMessage());rs.close();stmt.close();conn.close();}%></body></html>运行时显示:con=DriverManager.getConnection(url);这句出错.请各位大虾求救!!!
解决方案
解决方案二:
conn=DriverManager.getConnection(url,uid,pwd);分开写试试!
解决方案三:
con=DriverManager.getConnection(url,userName,userPasswd);Stringurl="jdbc:mysql://localhost:3306/faq";还是有问题啊??出错信息:sqlexceptionoccur.messageis:Cannotloadconnectionclass'java.sql.SQLException:Communicationfailureduringhandshake.Isthereaserverrunningonlocalhost:3306?'.
解决方案四:
是不是加了jar包,端口是不是正确,主要是这两方面,另外确保你的url是正确的。欢迎java爱好者加入:java群:96586051
解决方案五:
Stringurl="jdbc:mysql://localhost:3306/faq";我在mysql内建立的faq数据库,jdbc:mysql://localhost:3306/是照参考资料写的,是正确的吗?部署:org.gjt.mm.mysql.Driver直接部署在E:tomcat6.0webappsROOTWEB-INFclassesorggjtmmmysql求教阿!!
解决方案六:
Connectioncon;Statementstmt;ResultSetrs;Statementstmt;是对象变量吗,
解决方案七:
换个jar包吧,试试
解决方案八:
1.检查连接数据库字符串2.检查mysql是否可以正常使用3.检查mysql的驱动jar包版本
解决方案九:
请教:rs.close();stmt.close();con.close();出错什么原因??
解决方案十:
jar包换过
解决方案十一:
引用8楼wzwuq的回复:
请教:rs.close();stmt.close();con.close();出错什么原因??
总的贴个出错信息。rs.close();stmt.close();con.close();=====================关闭数据库从catch{}中移出来
解决方案十二:
已经移出还是出错!!如下:<%try{Class.forName("org.gjt.mm.mysql.Driver");}catch(java.lang.ClassNotFoundExceptione){out.print("classnotfoundexceptionoccur.messageis:");out.print(e.getMessage());}try{Connectioncon=null;Statementstmt;ResultSetrs=null;StringuserName="root";StringuserPasswd="123456";StringdbName="faq";StringtableName="first";Stringurl="jdbc:mysql://localhost:3306/faq";con=DriverManager.getConnection(url,userName,userPasswd);stmt=con.createStatement();Stringsql1;sql1="createtablefaqs(";sql1=sql1+"idintnotnullAUTO_INCREMENTprimarykey,";sql1=sql1+"subjectchar(200)null,";sql1=sql1+"answertextnull);";stmt.executeUpdate(sql1);stmt.executeUpdate("INSERTINTOfaqsVALUES(1,'问题一','答案a、b、c')");stmt.executeUpdate("INSERTINTOfaqsVALUES(2,'问题二','答案a、b、c')");rs=stmt.executeQuery("Select*fromfaqs");while(rs.next()){Strings1=str.strtochn(rs.getString("subject"));Strings2=str.strtochn(rs.getString("answer"));out.print(s1+"<br>");out.print("<li>"+s2+"<p>");}}catch(SQLExceptione){out.print("sqlexceptionoccur.messageis:");out.print(e.getMessage());}rs.close();stmt.close();con.close();%>出错信息为:descriptionTheserverencounteredaninternalerror()thatpreventeditfromfulfillingthisrequest.exceptionorg.apache.jasper.JasperException:UnabletocompileclassforJSP:Anerroroccurredatline:73inthejspfile:/9-1.jsprscannotberesolved70:out.print(e.getMessage());71:72:}73:rs.close();74:stmt.close();75:con.close();76:%>Anerroroccurredatline:74inthejspfile:/9-1.jspstmtcannotberesolved71:72:}73:rs.close();74:stmt.close();75:con.close();76:%>77:</body>Anerroroccurredatline:75inthejspfile:/9-1.jspconcannotberesolved72:}73:rs.close();74:stmt.close();75:con.close();76:%>77:</body>78:</html>
解决方案十三:
看你第一次贴出来的错误信息,应该是mysql端口问题。确定你的mysql服务器开启了,并且是端口3306.然后再继续调试。
解决方案十四:
Anerroroccurredatline:75inthejspfile:/9-1.jspconcannotberesolved找不到变量,作用域的问题Connectioncon=null;Statementstmt;ResultSetrs=null;移到try{}外面
解决方案十五:
使用myeclipse吗?直接放到web—inf下的lib中,还有,刚开始,你不要写那么复杂啊,一点点来啊!
其他方案:
mysql在系统进程中看到mysqld.exe应该服务是开了,端口默认值没改应该是3306吧.
其他方案:
搞不定,请哪位大虾有现成的连结代码贴下,不胜感谢!!!!
其他方案:
换jar包:驱动类名:com.mysql.jdbc.Driverurl把localhost改成127.0.0.1试试吧
其他方案:
又细看了一下你的JSP代码和错误信息,感觉不是数据库URL的问题,JSP都不能编译嘛Connectioncon=null;Statementstmt;//这里改成Statementstmt=null;ResultSetrs=null;出错信息:sqlexceptionoccur.messageis:Cannotloadconnectionclass'java.sql.SQLException:Communicationfailureduringhandshake.Isthereaserverrunningonlocalhost:3306?'.这个错误信息的要么是URL有问题,要么是数据库没起来。
其他方案:
楼主的这个mysql驱动字串有问题么???
其他方案:
StringuserName="root";StringuserPasswd="123456";StringdbName="faq";StringtableName="first";Stringurl="jdbc:mysql://localhost:3306/faq";con=DriverManager.getConnection(url,userName,userPasswd);请教url参数是否对,总是出错!!!苦啊!descriptionTheserverencounteredaninternalerror()thatpreventeditfromfulfillingthisrequest.exceptionorg.apache.jasper.JasperException:AnexceptionoccurredprocessingJSPpage/9-1.jspatline4138:39:40:41:con=DriverManager.getConnection(url,userName,userPasswd);42:stmt=con.createStatement();43:44:
其他方案:
mysql的数据库faq是应放在哪个目录下??
其他方案:
rs.close();stmt.close();con.close();这三个移入到try块
其他方案:
Stringname="root";Stringpassword="root";StringdbURL="jdbc:mysql://localhost:3306/ruisi";StringdriverName="com.mysql.jdbc.Driver";ConnectiondbConn;publicConnectiongetConnection(){try{Class.forName(driverName);dbConn=DriverManager.getConnection(dbURL,name,password);returndbConn;}catch(Exceptione){e.printStackTrace();}returnnull;}楼主是不是Class.forName里面写错了?