相关疑难解决方法(0)

将Java连接到MySQL数据库

你如何用Java连接到MySQL数据库?

当我尝试时,我明白了

java.sql.SQLException: No suitable driver found for jdbc:mysql://database/table
    at java.sql.DriverManager.getConnection(DriverManager.java:689)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
Run Code Online (Sandbox Code Playgroud)

要么

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Run Code Online (Sandbox Code Playgroud)

要么

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
Run Code Online (Sandbox Code Playgroud)

java mysql jdbc

309
推荐指数
5
解决办法
55万
查看次数

静态初始化块

据我所知,"静态初始化块"用于设置静态字段的值,如果不能在一行中完成的话.

但我不明白为什么我们需要一个特殊的块.例如,我们将一个字段声明为静态(没有值赋值).然后编写几行代码,生成并为上面声明的静态字段赋值.

为什么我们需要在一个特殊的块这样的行这样的:static {...}

java static initialization static-block initialization-block

252
推荐指数
8
解决办法
19万
查看次数

臭名昭着的java.sql.SQLException:找不到合适的驱动程序

我正在尝试将已启用数据库的JSP添加到现有的Tomcat 5.5应用程序(GeoServer 2.0.0,如果有帮助的话).

该应用程序本身与Postgres谈话很好,所以我知道数据库已启动,用户可以访问它,所有这些好东西.我想要做的是在我添加的JSP中的数据库查询.我已经在Tomcat数据源示例中使用了配置示例,非常开箱即用.必要的taglibs位于正确的位置 - 如果我只有taglib refs就不会发生错误,因此它会找到那些JAR.postgres jdbc驱动程序postgresql-8.4.701.jdbc3.jar位于$ CATALINA_HOME/common/lib中.

这是JSP的顶部:

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<sql:query var="rs" dataSource="jdbc/mmas">
  select current_validstart as ValidTime from runoff_forecast_valid_time
</sql:query>
Run Code Online (Sandbox Code Playgroud)

来自$ CATALINA_HOME/conf/server.xml的相关部分,其内部<Host>依次是<Engine>:

<Context path="/gs2" allowLinking="true">
  <Resource name="jdbc/mmas" type="javax.sql.Datasource"
      auth="Container" driverClassName="org.postgresql.Driver"
      maxActive="100" maxIdle="30" maxWait="10000"
      username="mmas" password="very_secure_yess_precious!"
      url="jdbc:postgresql//localhost:5432/mmas" />
</Context>
Run Code Online (Sandbox Code Playgroud)

这些行是webapps/gs2/WEB-INF/web.xml中标记的最后一行:

<resource-ref>
  <description>
     The database resource for the MMAS PostGIS database
  </description>
  <res-ref-name>
     jdbc/mmas
  </res-ref-name>
  <res-type>
     javax.sql.DataSource
  </res-type>
  <res-auth>
     Container
  </res-auth>
</resource-ref>
Run Code Online (Sandbox Code Playgroud)

最后,例外:

   exception
    org.apache.jasper.JasperException: Unable …
Run Code Online (Sandbox Code Playgroud)

postgresql tomcat jdbc geoserver

72
推荐指数
4
解决办法
12万
查看次数

35
推荐指数
4
解决办法
2万
查看次数

Java如何从string实例化一个类

可能重复:
从Java中的变量创建新类

我有一个字符串

String className = "DummyClass"
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个类对象,其中类名是className.就像这样

Object className = new className() // I know it's not possible.
Run Code Online (Sandbox Code Playgroud)

我想知道怎么做...

java java-ee

33
推荐指数
2
解决办法
7万
查看次数

通过反射和使用Class.cast()进行投射

可能重复:
Java Class.cast()与强制转换运算符

我没有成功地试图找出做Class.cast()什么或做什么有什么好处,同时我想知道我是否能以某种方式通过反射投射对象.

首先,我认为下面的行可能是错误的:

Object o = "A string";
String str = Class.forName("java.lang.String").cast(object);
Run Code Online (Sandbox Code Playgroud)

但如果没有明确的演员,它就行不通.

那么什么是上课cast方法Class呢?它是否有可能只是通过反射来投射对象,所以你找到对象的类,使用Class.forName它并以某种方式投射它?

java reflection casting

24
推荐指数
2
解决办法
7万
查看次数

Java基础知识的澄清?

class test {

    test() {
        System.out.println("Constructor");
    }

    {
        System.out.println("Hai");
    }

}

public class sample {

    public static void main(String [] a) {
        test t = new test();        
    }

}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,为什么在执行构造函数之前,在大括号((即)"Hai")中给出的语句是Printed.

java

10
推荐指数
2
解决办法
1934
查看次数

SQLException:找不到合适的驱动程序

我有一个Java类,它通过JDBC访问MySQL数据库,我在Tomcat上运行的JSP中使用,我得到No Driver Found Exception.

我有一个方法:

private static Statement makeStatement() {
   try{
    com.mysql.jdbc.Driver d = null;
    try{d = new com.mysql.jdbc.Driver();}catch(Exception e){
      System.out.println("ERROR BY NEW DRIVER " + e.toString() + 
      "\n");e.printStackTrace();}
    Connection con = DriverManager.getConnection(url, user, password);
    return con.createStatement();
   }catch(java.sql.SQLException ex){
      System.out.println("ERROR IN makeStatement " + "\nERROR - " +
      ex.toString() +  "\n ERROR CODE:\n " + ex.getErrorCode() + 
      "\nSQLSTATE:\n " + ex.getSQLStat        e());ex.printStackTrace();}
    return null;
 }
Run Code Online (Sandbox Code Playgroud)

这引发了一个错误.Connection con = DriverManager.getConnection(url, user, password);这是我的catalina.out打印输出:

  Received Parameters

ERROR IN makeStatement 
ERROR - …
Run Code Online (Sandbox Code Playgroud)

mysql jsp tomcat jdbc sqlexception

9
推荐指数
1
解决办法
7万
查看次数

java中import和class.forName之间的区别

import和class.forName都会加载类文件.当我在jsp文件中导入mysql数据的示例时,需要通过class.forName导入驱动程序类.当我通过import语句导入jdbc驱动程序时,它无法从tomcat服务器中的mysql获取数据.

java jsp jdbc

4
推荐指数
1
解决办法
5142
查看次数

没有返回或分配的值会怎样?

我遇到了一个功能:

def open(partitionId: Long,version: Long): Boolean = {
    Class.forName("com.mysql.jdbc.Driver")
    connection = DriverManager.getConnection(url, user, pwd)
    statement = connection.createStatement
    true
  }
Run Code Online (Sandbox Code Playgroud)

函数中的第一个和最后一个语句不执行任何操作。我知道Class.forName返回什么,但是返回的值不在任何地方使用,也没有赋值。同样的事情true。只是true在代码的中间。

您能告诉我Scala的这一功能吗?

scala side-effects return-value

4
推荐指数
1
解决办法
53
查看次数