私はバグを探して助けてください - MySQLのパーサ(JAVAのリアライズ)

私は2日間の週末MySQLParserを書きました。この事を書くの目的は次のとおりです。データは、プロジェクトのバージョン番号を戦うために必要があります(自動的に上がる枠組みでプレーする必要があるバージョン番号フィールドを有するように、各レコードの各テーブルを、プログラマによって行われていません) 。

だから、私はそれを言うことである(ない一般的なケースが書かれたために、特別なシーンがあり、このプログラムを書いた:いくつかのものは、ツールSQLプラスフィールドには影響しません、私は意図的にこのような無視執筆の過程にいますよ。システムは、唯一のCRUD操作を使用していますので、私は)SQLを書くときにDDL文をサポートすることができていません。

私は、システム内のすべてのSQLの項目をテストしたすべてを取り扱うことができ、私はまた、より複雑なSQLの一部を書いて、それはまた、正常に処理することができます。

しかし:私は珍しいMySQLの構文の一部に慣れていないですので、多くの人があなたが達成することができますが、構文を理解していないが、理由は理解していないので、私ことがわかっ実装する際に、構文定義sql_yacc.yy MySQLのソースコードファイルを参照してください。直接無視(と誰かがこれらの文法エラーを指示します)。

それはハード私はちょうど、少なくとも今、すべての私は、MySQLの挿入を使用していたため、達成するために私自身の理解によると、「通常のSQL構文」であり、「珍しいSQL構文は、」何で、私は今、実現するかを定義するために/削除/更新/ select文の構文は解決することができます正しく、正しいデータのバージョン番号フィールドを追加します。

(そんなに良く、また、その必要とあれば)あなたが興味を持っている場合は、ここではこの事[コードhttps://github.com/naturemickey/MySQLParser】cloneこのツールを試してご利用ください。

コード説明:

日食アウト1.clone後のディレクトリは、プロジェクトで、あなたは直接インポートすることができます。

すべてのテストケースの2.src / testディレクトリを直接実行することができます(ここで、実際のテストコードに加えて、SQLでの分野でのツールの使用コードの一行だけ、非常に単純な)。

3.コードはjava8で書かれています。

トラブルます:

1.あなたは、我々はあなたが私にgithubのプルリクエストに応じてテストケースに入れトラブル、その後、通常のSQL構文解析エラーを使用するか、ここでは解決できなかったことが判明した場合。

2.通常のGitHubない場合は、トラブルあなたが直接あなたのSQLテスト・メッセージにこの記事で後述する(https://github.com/naturemickey/MySQLParserこのアドレスは、直接SVNのチェックアウトを使用することができます)。

ありがとうございました!

ます。https://www.cnblogs.com/naturemickey/p/5774918.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_33994444/article/details/93461768