当我使用此代码时,我在连接到mysql数据库时遇到问题。我已经检查过端口号是3128。所以没有问题。我检查了一下,我认为问题在于
connection= DriverManager.getConnection("jdbc:mysql://localhost:3128/gcc","root", "root");
编译时没有错误。有人帮我这个吗?
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.sql.*;
//import java.net.*;
public class Main extends Applet implements ActionListener
{
TextArea tarea;
Button bsubmit;
public void init()
{
setBackground(new Color(0,0,0));
setForeground(Color.white);
Label l1=new Label("Write your code : ");
l1.setFont(new Font("lucida console",Font.PLAIN,25));
l1.setSize(200,30);
tarea=new TextArea();
tarea.setFont(new Font("lucida console",Font.PLAIN,18));
tarea.setForeground(new Color(0,0,0));
tarea.setSize(600,250);
bsubmit=new Button("Submit");
bsubmit.setFont(new Font("lucida console",Font.PLAIN,15));
bsubmit.setBackground(new Color(255,255,255));
bsubmit.setForeground(new Color(0,0,0));
bsubmit.setSize(100,30);
add(l1);
add(tarea);
add(bsubmit);
setLayout(null);
l1.setLocation(40,40);
tarea.setLocation(40,100);
bsubmit.setLocation(40,400);
bsubmit.addActionListener(this);
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==bsubmit)
{
Connection connection=null;
try
{
Class.forName("com.mysql.jdbc.Driver");
connection= DriverManager.getConnection("jdbc:mysql://localhost:3128/gcc","root", "root");
Statement stmt = connection.createStatement();
stmt.executeUpdate("CREATE TABLE test2 (code VARCHAR(254))");
}
catch (Exception e) {}
}
}
}
答案 0 :(得分:0)
Java数据库驱动程序是最糟糕的事情。我记得,我有第一个JDBC驱动程序(或者说:工作交易;)要在“仅”2天内安装,我知道一个人有两个星期,哈哈。
在大多数情况下,最后一个问题是SQL问题。因为您需要将用户权限授予“username”@“IP”。您可以在表user_privileges中的数据库information_schema中找到用户信息。有足够的教程如何处理它们,但我喜欢'username'@'%'来获得测试环境中的所有权限。 微笑的
这可能会对您有所帮助:http://dev.mysql.com/doc/refman/5.1/de/adding-users.html
是的,那些该死的SQL权利......; D
@Luiggi:这当然不是一个愚蠢的问题!我有几个小时才能找到它!我的意思是,哪个初学者知道Java sql类只有xxxxxxx接口没有实现代码?! %d
修改强>
无论如何:
Class.forName("...driverblabla...");
这段代码行看起来像Java吗? Nooo,它是一个xxxxxx编译器黑客或其他什么!但它确实有效,它确实有所作为!
哦,但是对于某些驱动程序实现,这不起作用,你需要这个:
Class.forName("...driverblabla...").newInstance();
LMAO!
@Abhinav:在getConnection-line上面添加这一行:
Class.forName("com.mysql.jdbc.driver").newInstance();
并且不要想一下它究竟做了什么(我知道,但是......让我们搞砸它;)