2012-03-06 15 views
11

私は現在、レストランのポータルアプリケーションを開発中です。使用されるバックエンドデータベースはMysqlであり、データアクセスロジックの作成にSpring JDBCサポートを使用しています。MySQLで一時プロシージャを作成するには?

私のDAOの中には、複数のクエリが混乱しており、1000行ものコードサイズが得られています。私は、私のロジックのいくつかをSQL-PSMプロシージャーに移すことで、サイズと複雑さを減らすことができると考えています(Javaのデータ・バインディングとグルー・コードは地獄からの忌み嫌いです)。

しかし、私はDbにDDL権限を持っていないため、プロシージャを作成することはできません。

最初に作成することなくDML文のように直接実行できる破棄可能な\一時プロシージャを作成する方法があるのだろうかと思いました。

つまり、自分の仕事を行い、結果を返して消える手順をマイナスしたい

グーグルでそれほどグーグルではありますが、何も見つかりませんでした。 : '(ちょうど人々がエレガントな解決法を知っているかどうか疑問に思っています。)

+1

私は持っていませんつまり、チームにORMを採用させることはもちろん、DbのPSMを有効にするということです。 :-(私は、別のSpring設定ファイルなどにクエリを外部化するなど、他の手段で複雑さを減らすことに決めました。すべての返信に感謝します。:-) –

+0

テキストファイルからSQL文を実行しようとしました[link] (http://dev.mysql.com/doc/refman/5.0/en/batch-commands.html) –

答えて

11

を私はあなたが匿名コードブロック/匿名の手続きを探していると思います。残念ながら、それはMySQLではサポートされていません(それはOracleやSybaseなど「ビッグ」のRDBMSでサポートされています)

私はいくつかのORMフレームワークの使用を検討したいと思いますが、私はJava開発者ではありませんので、お勧めできません。

+0

まさに!匿名コードブロック。悲しいことに、mysqlはそれらをサポートしていないと聞いています。:-(私のスパゲッティDAOについて何をすべきか考えています。 –

+1

あらかじめ作成しておけば、仕事の一部を行うために通常の手順を使用できます。 – Salandur

2

私はあなたができるとは思っていません。計算し、データセットを返します。

+0

これは問題ではありません。私はすでにJavaで作業コードを持っています。要点は、Javaがリレーショナル表のデータ操作に関してSQL-PSMと競合することができないということです。コードを半分に減らすことができます。 –

+0

@MonikaMichaelクエリを実行することによってDB側でデータ操作を行うことはできますか? MySQL SPの代わりにJavaメソッドでクエリをラップするだけです。私はあなたが使用しているJDBCについてはあまりよく分かりませんが、現代のDB抽象化には複数のクエリーサポートが含まれているはずです。 –

関連する問題