Browse Source

jfinal 4.0 release

James 6 years ago
parent
commit
aa65a7480a

+ 48 - 0
src/main/java/com/jfinal/plugin/activerecord/DaoTemplate.java

@@ -0,0 +1,48 @@
+package com.jfinal.plugin.activerecord;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * DaoTemplate
+ * 
+ * <pre>
+ * 例子:
+ * model.template("find", 123).find();
+ * </pre>
+ */
+@SuppressWarnings({"rawtypes", "unchecked"})
+public class DaoTemplate<M extends Model> {
+	
+	protected Model<M> dao;
+	protected SqlPara sqlPara;
+	
+	public DaoTemplate(Model dao, String key, Map<?, ?> data) {
+		this.dao = dao;
+		this.sqlPara = dao.getSqlPara(key, data);
+	}
+	
+	public DaoTemplate(Model dao, String key, Object... paras) {
+		this.dao = dao;
+		this.sqlPara = dao.getSqlPara(key, paras);
+	}
+	
+	public List<M> find() {
+		return dao.find(sqlPara);
+	}
+	
+	public M findFirst() {
+		return dao.findFirst(sqlPara);
+	}
+	
+	public Page<M> paginate(int pageNumber, int pageSize) {
+		return dao.paginate(pageNumber, pageSize, sqlPara);
+	}
+	
+	public Page<M> paginate(int pageNumber, int pageSize, boolean isGroupBySql) {
+		return dao.paginate(pageNumber, pageSize, isGroupBySql, sqlPara);
+	}
+}
+
+
+

+ 15 - 0
src/main/java/com/jfinal/plugin/activerecord/Model.java

@@ -1059,6 +1059,21 @@ public abstract class Model<M extends Model> implements Serializable {
 		String[] sqls = PageSqlKit.parsePageSql(sqlPara.getSql());
 		String[] sqls = PageSqlKit.parsePageSql(sqlPara.getSql());
 		return doPaginate(pageNumber, pageSize, null, sqls[0], sqls[1], sqlPara.getPara());
 		return doPaginate(pageNumber, pageSize, null, sqls[0], sqls[1], sqlPara.getPara());
 	}
 	}
+	
+	public Page<M> paginate(int pageNumber, int pageSize, boolean isGroupBySql, SqlPara sqlPara) {
+		String[] sqls = PageSqlKit.parsePageSql(sqlPara.getSql());
+		return doPaginate(pageNumber, pageSize, isGroupBySql, sqls[0], sqls[1], sqlPara.getPara());
+	}
+	
+	// ---------
+	
+	public DaoTemplate template(String key, Map data) {
+		return new DaoTemplate(this, key, data);
+	}
+	
+	public DaoTemplate template(String key, Object... paras) {
+		return new DaoTemplate(this, key, paras);
+	}
 }
 }