package org.nutz.dao; import java.util.List; import org.nutz.dao.sql.Sql; /** * 自定 SQL 的管理接口。 <br> * 通常,你可以通过 Dao 接口 sqls() 方法获得这个接口 * <p> * 你可以通过这个接口的实现类,将你的自定义 SQL 存放在文件或者数据库中 * * @author zozoh(zozohtnt@gmail.com) * * @see org.nutz.dao.Dao */ public interface SqlManager { /** * 获取一段 Sql 的原始文本 * * @param key * Sql 的键值 * @return Sql 的原始字符串 * @throws SqlNotFoundException */ String get(String key) throws SqlNotFoundException; /** * 创建一个 Sql 对象 * * @param key * Sql 的键值 * @return Sql 对象 * @throws SqlNotFoundException */ Sql create(String key) throws SqlNotFoundException; /** * 根据一组 Sql 的键值,创建一个 Sql 列表 * * @param keys * 键值数组 * @return Sql 列表 */ List<Sql> createCombo(String... keys); /** * @return 本接口下共管理了多少条 Sql 语句 */ int count(); /** * @return 一个包括所有 Sql 语句键值的数组 */ String[] keys(); /** * 刷新缓存 */ void refresh(); /** * 增加一条 Sql * * @param key * 键值 * @param value * Sql 原始字符串 */ void addSql(String key, String value); /** * 移除一条 Sql * * @param key * 键值 */ void remove(String key); }