首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

请教一个,数据库连接的有关问题。(待)

2011-12-08 
请教一个,数据库连接的问题。(在线等待)我现在有以下的代码:ConnectionconStatementstmtResultSetres//a

请教一个,数据库连接的问题。(在线等待)
我现在有以下的代码:

Connection   con;
Statement   stmt;
ResultSet   res;   //   add

Class.forName( "com.mysql.jdbc.Driver ").newInstance();
con   =   DriverManager.getConnection( "jdbc:mysql://localhost:3306/test ",   "root ",   " ");
stmt   =   con.createStatement();
res   =   stmt.executeQuery( "select   *   from   username   ");
...........

这段java代码,在一个单独的Java程序(也就是有mail函数的那种)中正常执行。但是如果把这个代码,放到web开发的Java程序中就会出错。
「con   =   DriverManager.getConnection( "jdbc:mysql://localhost:3306/test ",   "root ",   " ");」出错,出错的信息如下:


com.mysql.jdbc.CommunicationsException:   Communications   link   failure   due   to   underlying   exception:  

**   BEGIN   NESTED   EXCEPTION   **  

java.net.SocketException
MESSAGE:   java.security.AccessControlException:   access   denied   (java.net.SocketPermission   127.0.0.1:3306   connect,resolve)

STACKTRACE:

java.net.SocketException:   java.security.AccessControlException:   access   denied   (java.net.SocketPermission   127.0.0.1:3306   connect,resolve)
at   com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:151)
at   com.mysql.jdbc.MysqlIO. <init> (MysqlIO.java:280)
at   com.mysql.jdbc.Connection.createNewIO(Connection.java:1765)
at   com.mysql.jdbc.Connection. <init> (Connection.java:430)
at   com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:268)
at   java.sql.DriverManager.getConnection(Unknown   Source)
at   java.sql.DriverManager.getConnection(Unknown   Source)
at   Login.LoginJavaBean.strCheck(LoginJavaBean.java:16)
at   Login.LoginServlet.doGet(LoginServlet.java:16)
at   javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
at   javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
at   org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:50)
at   org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:128)
at   java.security.AccessController.doPrivileged(Native   Method)
at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:124)
at   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
at   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:139)
at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
at   org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2460)
at   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at   org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:119)


at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
at   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
at   org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
at   org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:157)
at   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at   org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at   org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at   org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at   java.lang.Thread.run(Unknown   Source)


**   END   NESTED   EXCEPTION   **


想请教各位,如何解决这个问题。

[解决办法]
权限问题。放开mysql的权限
[解决办法]
晕倒,干嘛密码是空的?好歹也设置个123吧?
[解决办法]
java.security.AccessControlException: access denied (java.lang.RuntimePermission exitVM)
=============================================================
没有权限。。。
test这个不是mysql自带的数据库么,username是你在里面建的一个表?另外看一下驱动有没有放到/WEB-INF/lib目录下

[解决办法]
我看是你的mysql的问题。。看看mysql服务启动了吗?
要是启动了。。还不行你先用修复工具修复mysql。。。
出现的问题是不能连接mysql数据库
[解决办法]
按照下面的方法确认一次:(从log看楼主用的是tomcat)
1)Code
连接字符用
DriverManager.getConnection( "jdbc:mysql://localhost:3306/test?user=root&password=123 ");

2)tomcat policy修改(path=apache-tomcat-5.x/conf/catalina.policy)
追加

grant {
 // All Web Application can access localhost mysql
 permission java.net.SocketPermission "localhost:3306 ", "connect ";
};


3)restart tomcat

热点排行