浏览代码

jfinal 4.1 release ^_^

James 6 年之前
父节点
当前提交
4f7443668a

+ 30 - 0
src/main/java/com/jfinal/plugin/activerecord/Db.java

@@ -732,6 +732,36 @@ public class Db {
 	public static DbTemplate template(String key, Object... paras) {
 	public static DbTemplate template(String key, Object... paras) {
 		return MAIN.template(key, paras);
 		return MAIN.template(key, paras);
 	}
 	}
+	
+	// ---------
+	
+	/**
+	 * 使用字符串变量作为 sql 模板进行查询,可省去外部 sql 文件来使用
+	 * sql 模板功能
+	 * 
+	 * <pre>
+	 * 例子:
+	 * String sql = "select * from blog where id = #para(id)";
+	 * Db.templateByString(sql, Kv.by("id", 123).find();
+	 * </pre>
+	 */
+	public static DbTemplate templateByString(String content, Map data) {
+		return MAIN.templateByString(content, data);
+	}
+	
+	/**
+	 * 使用字符串变量作为 sql 模板进行查询,可省去外部 sql 文件来使用
+	 * sql 模板功能
+	 * 
+	 * <pre>
+	 * 例子:
+	 * String sql = "select * from blog where id = #para(0)";
+	 * Db.templateByString(sql, 123).find();
+	 * </pre>
+	 */
+	public static DbTemplate templateByString(String content, Object... paras) {
+		return MAIN.templateByString(content, paras);
+	}
 }
 }
 
 
 
 

+ 10 - 0
src/main/java/com/jfinal/plugin/activerecord/DbPro.java

@@ -1317,6 +1317,16 @@ public class DbPro {
 	public DbTemplate template(String key, Object... paras) {
 	public DbTemplate template(String key, Object... paras) {
 		return new DbTemplate(this, key, paras);
 		return new DbTemplate(this, key, paras);
 	}
 	}
+	
+	// ---------
+	
+	public DbTemplate templateByString(String content, Map data) {
+		return new DbTemplate(true, this, content, data);
+	}
+	
+	public DbTemplate templateByString(String content, Object... paras) {
+		return new DbTemplate(true, this, content, paras);
+	}
 }
 }
 
 
 
 

+ 10 - 0
src/main/java/com/jfinal/plugin/activerecord/DbTemplate.java

@@ -26,6 +26,16 @@ public class DbTemplate {
 		this.sqlPara = db.getSqlPara(key, paras);
 		this.sqlPara = db.getSqlPara(key, paras);
 	}
 	}
 	
 	
+	public DbTemplate(boolean byString, DbPro db, String content, Map<?, ?> data) {
+		this.db = db;
+		this.sqlPara = db.getSqlParaByString(content, data);
+	}
+	
+	public DbTemplate(boolean byString, DbPro db, String content, Object... paras) {
+		this.db = db;
+		this.sqlPara = db.getSqlParaByString(content, paras);
+	}
+	
 	/*
 	/*
 	 * 下一版本根据需求强度考虑添加此方法
 	 * 下一版本根据需求强度考虑添加此方法
 	 * TODO 这里要严格测试,因为没有 Map data 值,所以 getSqlPara(...) 不一定可以正常工作
 	 * TODO 这里要严格测试,因为没有 Map data 值,所以 getSqlPara(...) 不一定可以正常工作