【问题标题】:phpMyAdmin and Java ConnectionphpMyAdmin 和 Java 连接
【发布时间】:2012-03-24 00:23:06
【问题描述】:

我正在尝试将我的 java 程序连接到我使用 phpmyadmin 使用大学服务器创建的数据库。所以数据库在大学服务器上。我如何从 java 程序获得到数据库的连接?我试过这段代码,但它给了我一个错误信息?

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Connector {
    Connection con;
    PreparedStatement stmt;
    ResultSet rs;

    Connector()
    {
    try{

        Class.forName("com.mysql.jdbc.Driver");
        con=DriverManager.getConnection("https://NAMEHIDDEN.soi.city.ac.uk:5454/~kdhy546","root","");

                    stmt=con.prepareStatement("select * from staff where username=? and password=?");
                    }

    catch (Exception e) 
    {
        System.out.println(e);
    }
}
}

我什至不太确定,这是否是数据库的正确 URL?如何确定 phpmyadmin 中数据库的确切链接?

【问题讨论】:

    标签: java phpmyadmin


    【解决方案1】:

    phpMyAdmin 不是 DBMS,而是 UI。如果是 MySQL 数据库,则必须使用MySQL JDBC

    【讨论】:

    • 我通过添加官方 MySQL 文档的链接来编辑我的答案
    • 我用过mysql jdbc。当我有一个本地主机链接时它起作用了。现在我将数据库上传到服务器上,所以我只需要在连接类中更改数据库的位置,但我不太确定,放在那里的链接是什么?因为正常情况下,当你想访问服务器上的数据库时,你需要输入用户名、密码等。
    【解决方案2】:

    我从未使用过 phpMyAdmin,但根据this 教程,如果您导航到 MySQL 帐户维护部分,您应该会获得连接字符串。

    我注意到的另一件事是您在连接中丢失了密码,因此如果没有密码,您的应用程序将无法连接。

    最后,每当您在 SO 上发布有关某些产生错误的代码的问题时,请确保您包含错误,它可以帮助我们帮助您:)。

    【讨论】:

      【解决方案3】:

      使用以下代码。 这是java部分:

          import java.net.*;
      
          public class mc
           {
           public static void main(String args[])
         {
          try
            {
           String username="ankur",password="ankur",fname="Shubhendu",ip="12345",lname="Goswami";
           String up= "username=" + username + "&password=" + password + "&fname=" + fname + "&lname=" + lname + "&ip="+ ip;
           URL url=new URL("http://127.0.0.1:80/alias1/index.php?"+up);
           URLConnection urlc=url.openConnection();
           urlc.connect();
           BufferedReader br=new BufferedReader(new InputStreamReader(urlc.getInputStream()));
           String str;
           while((str=br.readLine())!=null)
             {
               System.out.print(str);
             }
      
           br.close();        
          }
          catch(Exception e)
          {
           e.printStackTrace();
          }
         }
         }
      

      PHP 部分:您将从 PHP 中回显的任何内容都将存储在 Java 代码中的 String str 中:

               <?php
      
                mysql_connect("localhost","root","")or die("unable to connect to server");
                mysql_select_db("db_name") or die("Unable to connect to database");
      
                $username=$_GET['username'];
                $password=md5($_GET['password']);
                $fname=$_GET['fname'];
                $lname=$_GET['lname'];
                $ip=$_GET['ip'];
                if(isset($username) && isset($password) && isset($fname) && isset($lname) && isset($ip))
                 {
              $query="INSERT INTO tablename values('$username','$password','$fname','$lname','$ip')";
              $fire=mysql_query($query);
              }   
                 ?>
      

      希望它有效。

      【讨论】:

        【解决方案4】:

        您使用 phpMyAdmin 创建的数据库的 URL 错误。它应该类似于:

        jdbc:oracle:thin:@//myhost:1521/orc
        

        我建议您在网络上搜索一些关于此主题的优秀 Java 教程。 :)

        【讨论】:

        • 是的,我刚刚发现它应该是 jdbc:mysql:URL 但是,我不知道如何获取我的数据库的直接 URL。我如何为数据库获取它?
        • 我认为你放了一个正斜杠,然后是你在创建它时给它的任何名字......即 jdbc:mysql:127.0.0.1:3359/pitabase 你需要确保适当的权限您的用户也可以远程访问数据库!
        • 只要您可以解析名称并且您在服务器上具有远程访问数据库的适当权限,则无关紧要。
        • 嗯由于某种原因它不起作用。我猜需要尝试并出错。
        • 大多数时候我都遇到了麻烦,这是由于用户对数据库的权限或远程访问服务器或防火墙问题!您可以随时查看通过 ssh 进入数据库的反向隧道,并将您的代码指向您的本地转发端口。签出“ssh -L”命令... :)
        猜你喜欢
        • 2018-10-21
        • 2021-12-07
        • 2012-07-15
        • 2018-09-26
        • 2012-12-05
        • 1970-01-01
        • 2012-04-06
        • 2017-04-29
        • 2017-11-08
        相关资源
        最近更新 更多