code: private ConcurrentHashMap<String, String> load(final StringBuilder packageName, final File dir) throws IOException {
  		LOG.debug("Loading SQL template.[{}]", packageName);
  
  		ConcurrentHashMap<String, String> sqlMap = new ConcurrentHashMap<>();
  		File[] files = dir.listFiles();
  		for (File file : files) {
  			String fileName = file.getName();
  			if (file.isDirectory()) {
  				sqlMap.putAll(load(makeNewPackageName(packageName, file), file));
  			} else if (fileName.toLowerCase().endsWith(fileExtension)) {
  				String sql = trimSlash(read(new BufferedReader(new InputStreamReader(new FileInputStream(file),
  						getSqlEncoding()))));
  				String sqlName = makeSqlName(packageName, fileName);
  				sqlMap.put(sqlName, sql);
  
  				LOG.trace("Loaded SQL template.[{}]", fileName);
  				LOG.trace("Add SQL template.[{}],[{}]", sqlName, sql);
  			}
  		}
  		return sqlMap;
  	}
docs: 指定されたパッケージ以下のSQLを順次読み込みする<br>
  文末の"/"は削除される<br>
  
  @param packageName パッケージ名を格納するStringBuilder
  @param dir 探索対象ディレクトリ
  @return SQL識別子をキーとしたSQL文のMap
  @throws IOException ファイルアクセスに失敗した場合