使用Java获取与mysql数据库的连接?

时间:2012-10-12 20:48:46

标签: java mysql jdbc applet

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

1 个答案:

答案 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();

并且不要想一下它究竟做了什么(我知道,但是......让我们搞砸它;)