在开发应用程序时,经常需要与远程数据库进行交互。例如,可能正在开发一个Java应用程序,它需要访问托管在Linux服务器上的MySQL数据库,该服务器支持PHP和MySQL。本文将介绍如何使用Java通过AccessRemoteMySQLDB API连接远程MySQL数据库,并展示如何执行DML(数据操作语言)操作,包括插入(Insert)、更新(Update)、选择(Select)和删除(Delete)操作。
在远程访问数据库时,可能会遇到一些常见的问题。例如,可能需要打开端口以访问MySQL,但这可能会引发安全问题。另一种方法是使用VPN连接,但这对新程序员和应用程序用户来说可能比较复杂。因此,推荐使用AccessRemoteMySQLDBAPI来解决这些问题。
首先,从以下GitHub链接下载API:,并将解压后的文件放置在选择的目录中。
然后,将'handleSQL.php'文件复制到托管MySQL数据库的web服务器上,并记下该文件的URL。
最后,将AccessRemoteMySQLDB.jar添加到项目中。
以下是如何使用这个API的简要演示。
public class Example {
public static void main(String[] args) {
String fileURL = "http://example.com/some_directory/handleSQL.php";
String host = "mysql.some_hosting.com";
String user = "some_user";
String pass = "some_password";
String DBName = "some_dbname";
ConnectHost con = new ConnectHost(fileURL, host, user, pass, DBName);
SQLQuery query = new SQLUpdate(con);
try {
String sql = "INSERT INTO table_name VALUES ('value_1','value_2','value_3','value_4')";
int rows = query.statement(sql);
System.out.println(rows + " no. of rows affected");
} catch (SQLUpdateException e) {
System.out.println(e.getMessage());
}
}
}
try {
String sql = "UPDATE table_name SET column_1='value_1' WHERE some_column='some_value'";
int rows = update.statement(sql);
System.out.println(rows + " no. of rows affected");
} catch (SQLUpdateException e) {
System.out.println(e.getMessage());
}
try {
String sql = "DELETE FROM table_name WHERE some_column='some_value'";
int rows = update.statement(sql);
System.out.println(rows + " no. of rows affected");
} catch (SQLUpdateException e) {
System.out.println(e.getMessage());
}
SQLQuery query = new SQLQuery(con);
QueryResult qr;
try {
qr = query.statement("select * from table_name");
while (qr.nextFlag()) {
System.out.println(qr.getValue("column_1") + ", " + qr.getValue("column_2"));
}
} catch (SQLQueryException e) {
System.out.println(e.getMessage());
}
在建立连接时,硬编码了密码和其他详细信息,这不是一个好的做法。应该隐藏这些详细信息,以防止任何人窃取这些信息。