1

select * from user when table.name= $param1「 」などのクエリを実行するメソッド「getUser」を持つ Java オブジェクトがあります。

メソッドにはパラメータ " Map<String, String> params" があります。例: " params.add("param1", "Den")"

GetUser.sql などの他のファイルにクエリを保存したい

プログラムを実行するときに、クエリを変更します。

どうやってこれを行うのですか?

フレームワークが見つからない

4

2 に答える 2

3

クエリを保存するJavaプロパティファイルを使用できます。プログラムの実行中に、プロパティ ファイルからクエリをロードし、パラメータを入力して、データベースに対して最終的なクエリを実行できます。

query.getuser = select * from user when table.name= $param1

コードからプロパティ ファイルをロードし、クエリ文字列を取得します。

Properties property = //load property file 
String getUserQuery= propertie.getProperty("query.getuser");

または、別の外部マッピング ファイルにクエリを保持できるJPA/Hibernate名前付きクエリを使用することもできます。http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html/ch13.htmlを参照してください。

于 2013-08-15T09:39:45.217 に答える
1

Apache commons-vfs から FileAlterationMonitor を試すことができます:

FileSystemManager fsManager = VFS.getManager();
FileObject file = fsManager.resolveFile("/path-to-file");
DefaultFileMonitor fm = new DefaultFileMonitor(new FileChangeListener());
fm.addFile(file);
fm.start();

public class FileChangeListener implements FileListener {
  @Override
  public void fileCreated(FileChangeEvent event) throws Exception {
    //do nothing
  }

  @Override
  public void fileDeleted(FileChangeEvent event) throws Exception {
    //do nothing
  }

  @Override
  public void fileChanged(FileChangeEvent event) throws Exception {
    //Reload query from file
  }
}

クエリのリロードには、Shamim Ahmmed の回答を使用できます。

于 2013-08-15T10:36:35.177 に答える