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