【发布时间】:2017-08-26 11:25:53
【问题描述】:
我是第一次尝试 Gradle 和 JDBC。我有以下 gradle.build 文件:
apply plugin: 'java-library'
apply plugin: 'java'
repositories {
jcenter()
mavenCentral()
}
dependencies {
compile 'mysql:mysql-connector-java:5.1.36'
testImplementation 'junit:junit:4.12'
}
在我的 HelloMySQL.java 文件中,我正在尝试建立与 MySQL 数据库 WORLD 的连接(验证 URL 和端口)。我有以下代码:
package Hello;
import java.sql.*;
public class HelloMySQL {
public static void main(String[] args) {
Connection conn = null;
try{
System.out.println("Trying to connect...");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/WORLD", "root", "root");
System.out.println("Creating statement...");
Statement stmt = conn.createStatement();
String sql;
sql = "SELECT * FROM City LIMIT 10";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
int id = rs.getInt("id");
String name = rs.getString("name");
String countryCode = rs.getString("CountryCode");
System.out.println(id + " " + name + "\t " + countryCode);
}
} catch(SQLException e){
System.out.println(e.toString());
}
}
}
我也尝试在DriverManager.getConnection 之前添加这一行:
Class.forName('com.mysql.jdbc.Driver');
但它会抛出一个java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
我对 gradle 构建文件做错了吗?
编辑:我没有将 MySQL 连接器的 jar 添加到项目中。 Gradle 会为我下载它,对吧?
【问题讨论】:
-
@anant666 这是 Eclipse 生成的样板代码。我忘了从我粘贴的代码中删除它。
-
你是如何运行它的?驱动程序需要在运行时类路径中。
-
@MarkRotteveel 我是 Java 新手。我正在使用 Eclipse 的 Run 运行它。每次对构建文件进行更改后,我都尝试清理项目。我还尝试将依赖类型从
compile更改为runtime。 -
我从未使用过 Eclipse 中的 Gradle,所以我不知道它是如何交互的。由于 Eclipse 默认不使用 Gradle:您是否真的将其创建为 gradle 项目?
-
@MarkRotteveel 是的,我将它创建为一个 gradle 项目。你知道我如何使用 gradle CLI 编译和运行吗?