我正在开发一个基于 Java 的项目,该项目有一个需要连接到远程服务器上的 MySQL 数据库的客户端程序。执行如下:
使用 JDBC 编写要执行的 SQL 查询,然后使用 Apache Tomcat 作为 servlet 托管,并通过 XML-RPC 进行访问。客户端代码使用 XML-RPC 远程执行这些基于 JDBC 的功能。这允许我们保持我们的 MySQL 数据库不公开,限制使用预定义函数,并允许 Tomcat 管理数据库事务(有人告诉我这比让 MySQL 单独做要好,但我真的不这样做'不明白为什么)。然而,这种方法需要大量的样板代码,并且 Tomcat 是我们服务器上的一个巨大的内存猪。
我正在寻找一种更好的方法来做到这一点。我正在考虑的一种方法是使 MySQL 数据库可公开访问,将基于 JDBC 的代码重写为存储过程,并将公共使用仅限于这些过程。我看到的问题是,将所有 JDBC 代码转换为存储过程将是困难且耗时的。我也不太熟悉 MySQL 的权限。是否可以授予对在表上执行选择语句的存储过程的访问权限,但也可以拒绝在同一张表上的任意选择语句?
欢迎任何其他想法,以及对存储过程解决方案的想法和/或建议。
谢谢!