リモートサーバー上のMySQLデータベースに接続する必要があるクライアントプログラムを持つJavaベースのプロジェクトに取り組んでいます。これは次のように実装されました。
JDBCを使用して、実行するSQLクエリを記述します。このクエリは、Apache Tomcatを使用してサーブレットとしてホストされ、XML-RPCを介してアクセスできるようになります。クライアントコードはXML-RPCを使用して、これらのJDBCベースの機能をリモートで実行します。これにより、MySQLデータベースを非公開に保ち、事前定義された関数への使用を制限し、Tomcatがデータベーストランザクションを管理できるようになります(MySQLに単独で実行させるよりも優れていると言われていますが、実際にはそうではありません)理由を理解してください)。ただし、このアプローチには多くの定型コードが必要であり、Tomcatはサーバー上で大量のメモリを消費します。
私はこれを行うためのより良い方法を探しています。私が検討している1つの方法は、MySQLデータベースをパブリックにアクセス可能にし、JDBCベースのコードをストアドプロシージャとして書き直し、パブリックな使用をこれらのプロシージャのみに制限することです。これで私が目にする問題は、すべてのJDBCコードをストアドプロシージャに変換するのが難しく、時間がかかることです。また、MySQLの権限についてもあまり詳しくありません。テーブルでselectステートメントを実行するストアドプロシージャへのアクセスを許可するだけでなく、同じテーブルで任意のselectステートメントを拒否することはできますか?
ストアドプロシージャソリューションに関する考えや提案と同様に、他のアイデアも歓迎します。
ありがとうございました!