Java - mySql数据库连接
我是Java新手,我需要一些帮助。 从三个小时我正在与数据库连接。 首先我创建项目并下载驱动程序并将其解压到我的项目文件夹。 之后,发现了一些代码,通过我的数据库地址,用户名,密码进行更新并放入我的项目中。 现在我有一个文件:MysqlConnect.java:Java - mySql数据库连接
/*
* 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)
我找一些关于解决我的问题,互联网上回合这一切不工作:( 如果有人帮助我,我将* 我认为问题不在代码中,因为我尝试了三个来自谷歌的anodher代码,并且都出现了相同的错误,我把我的错误放到了google中,但它只有一个结果从俄罗斯坐e ..
根据http://www.java-forums.org/java-applets/45434-error-connection-mysql.html,您的JRE和您使用的驱动程序版本可能不匹配。
你使用的是什么版本?驱动程序编译的是什么版本的JRE?
编辑... 你提到你正在使用mysql conector/j 5.1.18和JRE 1.7。根据http://dev.mysql.com/doc/refman/5.0/en/connector-j-versions-java.html,仅在JRE/JDK 1.5和1.6上支持mysql 5.1。如果编译&使用正确的版本运行,您可能会排除异常。
Mysql连接器5.1.18,什么是JRE?我使用NetBeans IDE 7.1 – user1304098 2012-03-30 21:12:06
这两个版本都是最新版本。 – user1304098 2012-03-30 21:14:59
@ user1304098 JRE = Java运行时环境,它指的是Java虚拟机+标准Java库。您可以通过在命令行上运行“java -version”来检查默认JRE的版本。如果您使用的是Windows,请参阅以下命令行参考:http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html – Stefan 2012-03-30 21:42:59
该方法是在Java 1.7中引入的。尝试在Java 1.6环境中执行。然而,我不知道为什么它失败了。尽管最新的MySQL JDBC JAR文件5.1.8是为Java 1.6编写的,但它应该在Java 1.7中运行良好。你究竟如何编译/执行它?使用一些IDE?是不是你或IDE提取了MySQL JAR文件,并针对某些不明原因重新打包/重新编译了Java 1.7的所有内容? – BalusC 2012-03-30 20:46:48
我使用Netbeans IDE 7.1。 我添加mysql-onnector-java-5.1.18.zip到Netbeans左侧面板中的库,我也将zip文件夹中的所有文件夹放在我的包文件夹中。 – user1304098 2012-03-30 21:38:06
@ user1304098:评论/答案是否有帮助?你自己解决了这个问题吗? – atk 2012-04-12 13:46:58