-3

当我使用此代码时,我在连接到 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) {}
  }  
 }
}
4

1 回答 1

0

Java 数据库驱动程序是最糟糕的事情。我记得,我有我的第一个 JDBC 驱动程序(或者说:一个工作事务;)要在“仅”两天内安装,我认识一个有两个星期的人,哈哈。

在大多数情况下,最后一个问题是 SQL 问题。因为您需要将权限授予用户“用户名”@“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 吗?不,它是一个 xxxxxx 编译器黑客或其他什么!但它有效,它真的有什么作用!!

哦,但是对于某些驱动程序实现,这不起作用,你需要这个:

Class.forName("...driverblabla...").newInstance();

LMAO!

@Abhinav:将此行添加到您的 getConnection 行上方:

Class.forName("com.mysql.jdbc.driver").newInstance();

并且不要考虑它到底做了什么(我知道,但是......让我们搞砸它;)

于 2012-10-22T20:20:33.857 回答