Java JDBC连接和测试错误
我试图运行这段代码,但它给了我很多错误,我怎么知道自己的错误呢Java JDBC连接和测试错误,java,mysql,jdbc,driver,connector-j,Java,Mysql,Jdbc,Driver,Connector J,我试图运行这段代码,但它给了我很多错误,我怎么知道自己的错误呢 import javax.swing.JOptionPane; import java.sql.*; public class JdbcConnection{ static String userid="root", password = "123192"; static String url = "jdbc:mysql://localhost:3306/Testdb"; // String url = "j
import javax.swing.JOptionPane;
import java.sql.*;
public class JdbcConnection{
static String userid="root", password = "123192";
static String url = "jdbc:mysql://localhost:3306/Testdb"; // String url = "jdbc:mySubprotocol:myDataSource"; ?
static Statement stmt;
static Connection con;
public static void main(String args[]){
JOptionPane.showMessageDialog(null,"JDBC Programming showing Creation of Table's");
int choice = -1;
do{
choice = getChoice();
if (choice != 0){
getSelected(choice);
}
}
while ( choice != 0);
System.exit(0);
}
public static int getChoice()
{
String choice;
int ch;
choice = JOptionPane.showInputDialog(null,
"1. Create Employees Table\n"+
"2. Create Products Table\n"+
"0. Exit\n\n"+
"Enter your choice");
ch = Integer.parseInt(choice);
return ch;
}
public static void getSelected(int choice){
if(choice==1){
createEmployees();
}
if(choice==2){
createOrders();
}
}
public static Connection getConnection()
{
try {
Class.forName("com.mysql.jdbc.Driver"); //Class.forName("myDriver.ClassName"); ?
} catch(java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException: ");
System.err.println(e.getMessage());
}
try {
con = DriverManager.getConnection(url,
userid, password);
} catch(SQLException ex) {
System.err.println("SQLException: " + ex.getMessage());
}
return con;
}
/*CREATE TABLE Employees (
Employee_ID INTEGER,
Name VARCHAR(30)
);*/
public static void createEmployees()
{
Connection con = getConnection();
String createString;
createString = "create table Employees (" +
"Employee_ID INTEGER, " +
"Name VARCHAR(30))";
try {
stmt = con.createStatement();
stmt.executeUpdate(createString);
stmt.close();
con.close();
} catch(SQLException ex) {
System.err.println("SQLException: " + ex.getMessage());
}
JOptionPane.showMessageDialog(null,"Employees Table Created");
}
/*CREATE TABLE Orders (
Prod_ID INTEGER,
ProductName VARCHAR(20),
Employee_ID INTEGER
);*/
public static void createOrders()
{
Connection con = getConnection();
String createString;
createString = "create table Orders (" +
"Prod_ID INTEGER, " +
"ProductName VARCHAR(20), "+
"Employee_ID INTEGER )";
try {
stmt = con.createStatement();
stmt.executeUpdate(createString);
stmt.close();
con.close();
} catch(SQLException ex) {
System.err.println("SQLException: " + ex.getMessage());
}
JOptionPane.showMessageDialog(null,"Orders Table Created");
}
}//End of class
我犯了这个错误
ClassNotFoundException: jdbc:mysql://localhost:3306/
SQLException: No database selected
当我运行这个程序并选择选项1时,它给了我这个错误
ClassNotFoundException: jdbc:mysql://localhost:3306/
SQLException: No database selected
在我点击ok之后,它给了我这个错误
ClassNotFoundException: jdbc:mysql://localhost:3306/
SQLException: No database selected
我使用的是MySQL,我下载了我的连接器/j,并设置了它的类路径h
C:\Program Files\Java\jdk1.6.0_24\bin;C:\Program Files\Java\jre6\lib\ext
有什么帮助吗?在EclipseHelios中如何设置默认驱动程序?
编辑:
我更新了我的代码我现在的问题是
Exception in thread "main" java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at JdbcConnection.getChoice(JdbcConnection.java:33)
at JdbcConnection.main(JdbcConnection.java:15)
这:
这是错误的。
正如您的源代码注释所建议的,它需要:
Class.forName("myDriver.ClassName");
使用mysql可能是:
Class.forName("com.mysql.jdbc.Driver");
您的url
用于创建与以下内容的连接:
con = DriverManager.getConnection(url, userid, password);
加载驱动程序类。它不负责建立连接
顺便说一下:
您会遇到两个错误,因为您没有在ClassNotFoundError
上退出您的方法,这是一个非常严重的错误,不应允许您的方法进一步执行。因此,您的程序将进一步执行并抛出第二个错误。这是: 这是错误的。 正如您的源代码注释所建议的,它需要:
Class.forName("myDriver.ClassName");
使用mysql可能是:
Class.forName("com.mysql.jdbc.Driver");
您的url
用于创建与以下内容的连接:
con = DriverManager.getConnection(url, userid, password);
加载驱动程序类。它不负责建立连接
顺便说一下:
您会遇到两个错误,因为您没有在ClassNotFoundError
上退出您的方法,这是一个非常严重的错误,不应允许您的方法进一步执行。因此,您的程序将进一步执行并抛出第二个错误。Class.forName用于加载驱动程序类 应该是这样的
Class.forName("com.mysql.jdbc.Driver");
url ="jdbc:mysql://localhost:3306/yourDataBaseName"
你的url应该是这样的
Class.forName("com.mysql.jdbc.Driver");
url ="jdbc:mysql://localhost:3306/yourDataBaseName"
Class.forName用于加载驱动程序类 应该是这样的
Class.forName("com.mysql.jdbc.Driver");
url ="jdbc:mysql://localhost:3306/yourDataBaseName"
你的url应该是这样的
Class.forName("com.mysql.jdbc.Driver");
url ="jdbc:mysql://localhost:3306/yourDataBaseName"
我如何知道我的驱动程序类名?我所知道的是,我下载了connectorj,并将其添加到路径和java中folder@user962206驱动程序的制造商通常会告诉您如何配置/使用java。请看一下文档/用户指南。每个数据库的驱动程序都不同。对于您的msysql案例,com.mysql.jdbc.Driver肯定是正确的。好的,我已经完成了,但是数据库的URL有什么用??最后,请更新我的问题check@user962206URL用于创建与DriverManager.getConnection的连接。您的新问题表明,选项中的值不能转换为整数。它可以包含字符。无论如何,如果您面临新问题并在此处接受答案(如果任何答案有帮助),最好打开一个新问题。错误消息显示java.lang.NumberFormatException:null,这是因为JOptionPane.showInputDialog返回null。这是一个完全不同的问题:)我如何知道我的驱动程序类名?我所知道的是,我下载了connectorj,并将其添加到路径和java中folder@user962206驱动程序的制造商通常会告诉您如何配置/使用java。请看一下文档/用户指南。每个数据库的驱动程序都不同。对于您的msysql案例,com.mysql.jdbc.Driver肯定是正确的。好的,我已经完成了,但是数据库的URL有什么用??最后,请更新我的问题check@user962206URL用于创建与DriverManager.getConnection的连接。您的新问题表明,选项中的值不能转换为整数。它可以包含字符。无论如何,如果您面临新问题并在此处接受答案(如果任何答案有帮助),最好打开一个新问题。错误消息显示java.lang.NumberFormatException:null,这是因为JOptionPane.showInputDialog返回null。这是一个完全不同的问题:)我还没有创建任何数据库,我不知道如何在cmdWell中键入查询。我认为您需要已经创建了一个数据库,只有这样您才能连接到该数据库。如果您没有数据库,那么如何连接到该特定数据库。您在创建表时没有选择任何数据库,这肯定会给您带来错误。在MySql中,您需要有一个数据库来创建表。好的,我已经完成了修复数据库Url和驱动程序的工作。现在我更新了我的问题,我有较小的错误,请重新阅读我的代码以查找新的错误,我更新了itI我还没有创建任何数据库yetI不知道如何在CMD中键入查询我想你需要已经创建了一个数据库,只有这样你才能连接到该数据库。如果您没有数据库,那么如何连接到该特定数据库。您在创建表时没有选择任何数据库,这肯定会给您带来错误。在MySql中,您需要有一个数据库来创建表。好的,我已经完成了修复数据库Url和驱动程序的工作。现在我更新了我的问题,我有较小的错误,请重新阅读我的新错误代码,我更新了它