【问题标题】:Exception in JDBC using MySQL使用 MySQL 的 JDBC 中的异常
【发布时间】:2015-08-24 03:08:19
【问题描述】:

我正在尝试在 java 中创建一个在 mysql 中有数据库的应用程序。我在网上搜索了各种来源,并在 properties->library->add JAR/Library 中包含了mysql-connector-java-5.0.8-bin.jar

但是当我运行它时它仍然显示java.lang.ClassNotFound Exception

我正在使用 netbeans IDE 8.0 和 jdk 1.7.0_45 和 mysql server 5.6

这是我的 jdbc mysql 连接代码:

try {
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    System.out.println("Connecting to a selected database...");
    con = DriverManager.getConnection("jdbc:mysql://localhost/prj","root","root");
    System.out.println("Connected database successfully...");
    s=con.createStatement();
    String q="insert into call_log"+" values(now(),'room 1')";
    s.executeUpdate(q);
} catch(SQLException se) { 
    se.printStackTrace(); 
} catch(Exception e) { 
    System.out.println(e); 
} finally { 
    try { 
        if(con!=null) 
            con.close(); 
    } catch(SQLException se) { 
        se.printStackTrace(); 
    } 
}

【问题讨论】:

  • 请添加完整的堆栈跟踪。
  • 这里是完整的 jdbc 代码
  • catch(SQLException se) { se.printStackTrace(); } catch(Exception e) { System.out.println(e); } 最后 { 尝试 { if(con!=null) con.close(); } catch(SQLException se) { se.printStackTrace(); } }
  • 驱动程序不在运行时类路径中。请注意,Class.forName("com.mysql.jdbc.Driver").newInstance(); 在过去的 15 年里是不必要的(这是早期 MySQL JDBC 驱动程序中的一个错误的解决方法),并且自 Java 6 以来就不需要Class.forName("com.mysql.jdbc.Driver");(如果你有一个 JDBC 4 兼容的驱动程序)。
  • 那不使用Class.forName("com.mysql.jdbc.Driver")怎么办

标签: java mysql jdbc


【解决方案1】:

此代码在 NetBeans 8.0.2 中运行

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

public class DBConnect {

public static void main(String[] args) {
    try {
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        System.out.println("Connecting to a selected database...");
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost/mydb", "user", "pass");
        System.out.println("Connected database successfully...");
        Statement s = con.createStatement();
        String q = "select * from table";
        s.execute(q);
    } catch (ClassNotFoundException | SQLException | InstantiationException | IllegalAccessException ex) {
        Logger.getLogger(DBConnect.class.getName()).log(Level.SEVERE, null, ex);
    }
}
}

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>mavenproject</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>
</dependencies>

【讨论】:

  • 但此代码在我的 IDE 中不起作用,并且仍然显示类未找到异常...
  • 尝试重建您的项目,或删除 .m2 存储库并重新下载。
  • 你使用的是maven还是ant?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-12
  • 2011-06-12
  • 1970-01-01
  • 2020-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多