-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 ドライバー (または、動作中のトランザクションとしましょう) を「わずか」2 日以内にインストールしたことを覚えています。

ほとんどの場合、最後の問題は 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();

爆笑!

@Abhinav: getConnection-line の上に次の行を追加します。

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

そして、それが正確に何をするかについて1秒も考えないでください(私はそれを知っていますが...それを台無しにしましょう;)

于 2012-10-22T20:20:33.857 に答える