如何安装JDBC以及如何使用它连接到mysql?
我正在尝试安装JDBC,但我不知道如何,当你只有jar文件时,我将它复制到我的java ext文件夹但是它一直给我一个错误,有人能告诉我如何完成安装驱动程序并使用它吗?
下面是我使用的代码
import java.sql.*; public class Test1 { public static void main (String[] args) { String url = "jdbc:mysql://localhost:3306/sabayafr_sabmah"; String username = "root"; String password = "ma"; Connection connection = null; try { System.out.println("Connecting database..."); connection = DriverManager.getConnection(url, username, password); System.out.println("Database connected!"); } catch (SQLException e) { System.err.println("Cannot connect the database!"); e.printStackTrace(); } finally { System.out.println("Closing the connection."); if (connection != null) try { connection.close(); } catch (SQLException ignore) {} } } }
以下是我得到的响应
Cannot connect to database server
更新#3
C:\Users\AlAsad\Desktop>java -cp .;mysql-connector-java-5.0.8-bin.jar Test1 Connecting database... Cannot connect the database! java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/ sabayafr_sabmah at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at Test1.main(Test1.java:12) Closing the connection.
您正在尝试将MySQL与专为Microsoft SQL Server设计的jTDS JDBC驱动程序的URL连接。 这永远不会奏效。 即使不是通过将JAR文件放在类路径中来修复当前问题。
你真的需要MySQL JDBC驱动程序 。 另请参阅此答案以获得简短但完整的教程
另一方面,如果您使用的是Netbeans或Eclipse等IDE,则可以将jar文件作为资源添加到项目中。
你当然有JDBC问题,但例外并没有告诉你。 再读一遍:
Exception in thread "main" java.lang.NoClassDefFoundError: Test1 Caused by: java.lang.ClassNotFoundException: Test1
这是你无法找到的Test1.class,而不是JDBC驱动程序。
您不应该将任何内容复制到jre / lib / ext目录中。 这是针对库扩展的,而不是JDBC JAR。 对于那些不了解CLASSPATH如何工作的人来说,这并不是一个拐杖。
我写的更像是以下内容。 那些贴近的方法会派上用场。
当我在我的机器上运行它,将MySQL JDBC JAR添加到我的CLASSPATH时,我得到以下结果:
C:\java -classpath .\mysql-connector-java-5.1.6-bin.jar; persistence.utils.DatabaseUtils product: MySQL version: 5.1.24-rc-community major : 5 minor : 1
这是源代码:
package persistence.utils; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DatabaseUtils { public static final String DRIVER = "com.mysql.jdbc.Driver"; public static final String URL = "jdbc:mysql://localhost:3306/contacts"; public static final String USERNAME = "contacts"; public static final String PASSWORD = "contacts"; public static void main(String[] args) { Connection connection = null; try { String driver = ((args.length > 0) ? args[0] : DRIVER); String url = ((args.length > 1) ? args[1] : URL); String username = ((args.length > 2) ? args[2] : USERNAME); String password = ((args.length > 3) ? args[3] : PASSWORD); connection = getConnection(driver, url, username, password); DatabaseMetaData metaData = connection.getMetaData(); System.out.println("product: " + metaData.getDatabaseProductName()); System.out.println("version: " + metaData.getDatabaseProductVersion()); System.out.println("major : " + metaData.getDatabaseMajorVersion()); System.out.println("minor : " + metaData.getDatabaseMinorVersion()); } catch (Exception e) { e.printStackTrace(); } finally { close(connection); } } public static Connection getConnection(String driver, String url, String username, String password) throws ClassNotFoundException, SQLException { Connection connection = null; Class.forName(driver); connection = DriverManager.getConnection(url, username, password); return connection; } public static void close(Connection connection) { try { if (connection != null) { connection.close(); } } catch (SQLException e) { e.printStackTrace(); } } public static void close(Statement statement) { try { if (statement != null) { statement.close(); } } catch (SQLException e) { e.printStackTrace(); } } public static void close(ResultSet resultSet) { try { if (resultSet != null) { resultSet.close(); } } catch (SQLException e) { e.printStackTrace(); } } public static void rollback(Connection connection) { try { if (connection != null) { connection.rollback(); } } catch (SQLException e) { e.printStackTrace(); } } }
‘我正在尝试安装JDBC’
您不必安装JDBC。 它是JDK和JRE的一部分。
尝试将.jar文件放在类路径中 。
包含驱动程序( net.sourceforge.jtds.jdbc.Driver
)的库需要位于类路径中。
假设你开始使用应用程序
java Test1
然后干脆做
java -cp .;driver.jar Test1
其中’driver.jar’应与数据库驱动程序库的文件名(相对路径或完整路径)交换。
编辑
类路径教程将超出此问题下方的注释部分。 请喝一杯咖啡,看看这个页面 。 它很可能会帮助你继续。
- 如何将非final变量传递给匿名内部类?
- 如何创建一个静态Map of String – > Array
- Spring ApplicationContext.getBean(Class c)不适用于代理类
- proxyMode ScopedProxyMode.TARGET_CLASS vs ScopedProxyMode.INTERFACE
- Eclipse- Dynamic Web Module 3.0在创建新项目时需要Java 1.6或更高版本的错误
- Selenium:使用xpath在div中输入文本
- 当从unsigned Javascript调用时,如何获得已签名的Java Applet以执行特权操作?
- Java Swing为基本音乐播放器绘制PlayButton
- 编码和解码rfc2396 URL