我很好奇使用我的文本文件在JAVA中建立数据库连接。
例如我创建这样的文本文件:
user root
passw root
url http://localhost:3307/.........
是否可以连接到该数据库并获取有关它的信息(创建所有表存储的时间等等)
答案 0 :(得分:1)
基本上,您可以轻松地建立真正的数据库连接:
但您在这里面临的实际问题是:您的网址指向在HTTP服务器上运行的phpMyAdmin网站,可能是apache。 该URL不会为您提供实际的数据库。
通常MySQL在端口3306上运行。 从它看起来,你在端口3307上寻址HTTP服务器,它本身解释phpMyAdmin PHP文件。那些命令HTTP服务器连接到MySQL(可能在端口3306上)并读取某些信息。
因此,在Java应用程序中使用您的给定URL不是真正的数据库连接,而只是HTTP请求,要求HTTP服务器提供您可能解析的HTML页面...
因此,您需要指定更多内容以实际解决该问题的最终解决方案。
/ *编辑* / 这是示例代码:
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
public class SimpleTextFileDBConnectionConfig {
// MYSQL_DRIVER("com.mysql.jdbc.Driver", "jdbc:mysql://%host%:%port%/%dbname%?verifyServerCertificate=%vsc%&useSSL=%usessl%&requireSSL=%requiressl%"), //
static public Connection getSimpleDBConnectionByTextFileConfig(final String pFileName) throws ClassNotFoundException, IOException, SQLException {
final HashMap<String, String> settings = new HashMap<>();
{ // load settings from file; could also drop this in separate method
final List<String> lines = Files.readAllLines(Paths.get(pFileName));
for (final String line : lines) {
if (line == null || line.length() < 1 || line.startsWith("#")) continue; // ignore certain lines
final String[] setting = line.trim().split(" ", 2);
final String key = setting[0].trim();
final String value = setting[1].trim();
settings.put(key, value);
}
}
// load driver
final String driverName = settings.get("drivername"); // can be "com.mysql.jdbc.Driver" for default java mysql driver
Class.forName(driverName);
// set timeout
final String timeout = settings.get("timeout");
if (timeout != null && timeout.length() > 0) DriverManager.setLoginTimeout(Integer.parseInt(timeout));
// connect
final String url = settings.get("url"); // can be like "jdbc:mysql://%host%:%port%/%dbname%?verifyServerCertificate=%vsc%&useSSL=%usessl%&requireSSL=%requiressl%"
return DriverManager.getConnection(url, settings.get("user"), settings.get("password"));
}
}