Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-mySql数据库连接_Java_Mysql_Database - Fatal编程技术网

Java-mySql数据库连接

Java-mySql数据库连接,java,mysql,database,Java,Mysql,Database,我是Java新手,需要一些帮助。 从三个小时开始,我就在与数据库连接作斗争。 首先,我创建项目并下载驱动程序,然后将其解压缩到我的项目文件夹中。 在找到一些代码后,通过我的数据库地址、用户名、密码进行更新,并放入我的项目中。 现在我有一个文件:MysqlConnect.java: /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package

我是Java新手,需要一些帮助。 从三个小时开始,我就在与数据库连接作斗争。 首先,我创建项目并下载驱动程序,然后将其解压缩到我的项目文件夹中。 在找到一些代码后,通过我的数据库地址、用户名、密码进行更新,并放入我的项目中。 现在我有一个文件:MysqlConnect.java:

  /*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jdbc;

/**
 *
 * @author Administrator
*/
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBC {

public static void main(String[] args) {

    // LADOWANIE STEROWNIKA
    System.out.print("Sprawdzanie sterownika:");
    try {
        Class.forName("com.mysql.jdbc.Driver").newInstance();
    } catch (Exception e) {
        System.out.println("Blad przy ladowaniu sterownika bazy!");
        System.exit(1);
    }
    System.out.print(" sterownik OK");

    // LACZENIE Z BAZA
    System.out.print("\nLaczenie z baza danych:");
    String baza = "jdbc:mysql://db41032162719.db.1and1.com/db41032162719";
    // objasnienie opisu bazy:
    // jdbc: - mechanizm laczenia z baza (moze byc inny, np. odbc)
    // mysql: - rodzaj bazy
    // //olimp.if.pw.edu.pl - adres serwera z baza (moze byc tez w formie adresu IP)
    // /pojava - nazwa bazy (poniewaz na serwerze moze byc kilka roznych baz...)
    String user = "dbo41032162719";
    String pass = "Zasypiam3141";
    java.sql.Connection conn = null;
    try {
        conn=DriverManager.getConnection(baza, user, pass);
        //rownoznacze z zapisem:
        //conn=DriverManager.getConnection("jdbc:mysql://olimp.if.pw.edu.pl/pojava?user=pojava&password=Java");
    } catch (SQLException e) {
        System.out.println("Blad przy ladowaniu sterownika bazy!");
        System.exit(1);
    }
    System.out.print(" polaczenie OK\n");

    // WYKONYWANIE OPERACJI NA BAZIE DANYCH
    System.out.println("Pobieranie danych z bazy:");
    Statement s = null;
    try {
        s = conn.createStatement();   // tworzenie obiektu Statement przesylajacego zapytania do bazy conn
        ResultSet r;                
        r=s.executeQuery("Select * from meteo;");  // wykonanie kwerendy i przeslanie wynikow do obiektu ResultSet  
        r.next();           // przejscie do kolejnego rekordu (wiersza) otrzymanych wynikow

        ResultSetMetaData rsmd = r.getMetaData();
        int numcols = rsmd.getColumnCount();   // pobieranie liczby kolumn

        //wyswietlanie nazw kolumn:
        for (int i = 1; i <= numcols; i++) { 
         System.out.print(rsmd.getColumnLabel(i)+"  |  "); 
        }
        System.out.print("\n------------------------------------\n");

        //wyswietlanie kolejnych rekordow:
        while (r.next()) {
            for (int i = 1; i <= numcols; i++) {
                 Object obj = r.getObject(i);
                 if (obj != null)System.out.print(obj.toString()+ " | ");
                 else  System.out.print(" ");
               }
            System.out.println();
        }
    } catch (SQLException e) {
        System.out.println("Blad odczytu z bazy! " +e.toString());
        System.exit(3);
    }

    // ZAMYKANIE POLACZENIA Z BAZA
    System.out.print("\nZamykanie polaczenia z baza:");
    try {
        s.close();
        conn.close();
    } catch (SQLException e) {
        System.out.println("Blad przy zamykaniu polaczenia " +e.toString());
        System.exit(4);
    }
    System.out.print(" zamkniecie OK");
}
}

我有一个错误:

run:
Exception in thread "main" java.lang.ExceptionInInitializerError
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:186)
    at jdbc.JDBC.main(JDBC.java:24)
Caused by: java.lang.RuntimeException: Uncompilable source code -     com.mysql.jdbc.NonRegisteringDriver is not abstract and does not override abstract method     getParentLogger() in java.sql.Driver
    at com.mysql.jdbc.NonRegisteringDriver.<clinit>(NonRegisteringDriver.java:69)
    ... 3 more
Sprawdzanie sterownika:Java Result: 1
BUILD SUCCESSFUL (total time: 7 seconds)
我在网上寻找解决问题的方法,但这些方法都不管用: 如果有人帮助我,我将不胜感激。 我认为问题不在于代码,因为我尝试了谷歌的另外三个代码,但都犯了同样的错误。我把我的错误放在谷歌上,但这只是一个来自俄罗斯网站的结果。

基于,你的JRE和你正在使用的驱动程序版本可能不匹配

您使用的每个版本是什么?驱动程序编译时所依据的JRE版本是什么

编辑。。。
您提到您正在使用mysql conector/J5.1.18和JRE 1.7。据介绍,mysql 5.1仅在JRE/JDK 1.5和1.6上受支持。如果使用正确的版本编译和运行,则可能会消除异常。

该方法是在Java 1.7中引入的。尝试在Java1.6环境中执行。然而,我想知道为什么你失败了。尽管最新的MySQL JDBC JAR文件5.1.8是为Java1.6编写的,但它在Java1.7中应该也能正常工作。您是如何编译/执行它的?使用一些IDE?您或IDE不是出于某种不清楚的原因提取MySQL JAR文件并重新打包/重新编译Java 1.7的所有内容吗?我使用的是Netbeans IDE 7.1。我将mysql-onnector-java-5.1.18.zip添加到Netbeans左侧面板中的库中,并且我将zip中的所有文件夹都放在我的包文件夹中。@user1304098:有任何注释/答案有帮助吗?你自己解决问题了吗?Mysql连接器5.1.18,什么是JRE?我使用NetBeans IDE 7.1,两个版本都是最新的。@user1304098 JRE=Java运行时环境,它指的是Java虚拟机+标准Java库。您可以通过在命令行上运行java-version来检查默认JRE的版本。如果您在Windows上,下面是命令行参考:我的JRE版本是1.7.0_02,支持mysql connector/j的Java版本。看起来您确实存在版本不匹配的问题。