模型类Bean

来自wiki
跳到导航 跳到搜索

Bean, 数据库访问和实体封装。


Bean[编辑]

  • Table,定义与实体表的对应
  • Column,定义与实体表中字段的对应
  • set/get, Bean除了本身的字段定义外,对没有映射的字段提供了一个Map数据存储,可以通过Bean的set/get存取
@Table(name = "tbl_demo")
public class Demo extends Bean {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	// define a DAO for each Bean
	public static final BeanDAO<Long , Demo> dao = BeanDAO.create(Demo.class);

	// mapping the column and field
	@Column(name = X.ID)
	long id;

	@Column(name = "name")
	String name;

	public long getId() {
		return id;
	}

	public String getName() {
		return name;
	}

	// ------------

	// insert a data in database
	public static long create(V v) {
		/**
		 * generate a unique id in distribute system
		 */
		long id = UID.next("demo.id");
		try {
			while (dao.exists(id)) {
				id = UID.next("demo.id");
			}
			dao.insert(v.force(X.ID, id));
			return id;
		} catch (Exception e1) {
			log.error(e1.getMessage(), e1);
		}
		return -1;
	}

}
// end of the Demo Bean

BeanDAO[编辑]

BeanDAO用于数据库的读写操作。

  • load
  • insert
  • update
  • sum,avg,max,min, ...
  • distinct

Helper.W[编辑]

Helper.W 用于构建类似SQL语句的查询条件, 该查询条件兼容SQL,Mongo的Query和SE的搜索条件。

  • and
  • or
  • OP->(eq, lt, gt, gte, lte, neq, ...)

Helper.V[编辑]

Helper.V 用户数据库写数据时的Value健/值对的存取。和Map类似,区别是:

  • append(), 添加数据,如果数据已经被添加,则忽略。
  • force(),强制添加数据,如果数据已经存在,则覆盖原来数据。