你如何用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) 据我所知,"静态初始化块"用于设置静态字段的值,如果不能在一行中完成的话.
但我不明白为什么我们需要一个特殊的块.例如,我们将一个字段声明为静态(没有值赋值).然后编写几行代码,生成并为上面声明的静态字段赋值.
为什么我们需要在一个特殊的块这样的行这样的:static {...}?
java static initialization static-block initialization-block
我正在尝试将已启用数据库的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) 可能重复:
从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)
我想知道怎么做...
我没有成功地试图找出做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它并以某种方式投射它?
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类,它通过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) import和class.forName都会加载类文件.当我在jsp文件中导入mysql数据的示例时,需要通过class.forName导入驱动程序类.当我通过import语句导入jdbc驱动程序时,它无法从tomcat服务器中的mysql获取数据.
我遇到了一个功能:
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的这一功能吗?
java ×7
jdbc ×4
jsp ×2
mysql ×2
tomcat ×2
casting ×1
factory ×1
geoserver ×1
java-ee ×1
postgresql ×1
reflection ×1
return-value ×1
scala ×1
side-effects ×1
sqlexception ×1
static ×1
static-block ×1