实现功能是“解决单个表的DML操作。”
每一个实体和数据库中的表应该是有关系存在的。hibernate是通过注解或配置来管理这种关系,我想通过约定格式的方式来实现管理这种关系。通过实现FieldProcessingPlant接口来自定义管理关系。
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface Relation { String value(); //数据表名 String prefix() default ""; //前缀 boolean autoPK() default false ; //是否自动生成ID Class<?> plat() default DefaultFieldProcessingPlant.class; //column生成类属性字段方法 }
我们得到关系后在通过spring的doScan(扫描)方法来维护所有实体并把每一个实体(表)的基本操作方式(数据库的增删改查)添加进Configuration-》MappedStatement 类中。
最后我们只需要在没一个实体上配置@Relation注解就可以操作次实体的增删改查方法了
@Relation(value = "sc_system_users",autoPK = true , prefix = "SC_") public class Users extends BaseEntity { private String userName ; private String passWord; private Integer locked; private Integer enabled; private Timestamp lastLoginFailedDate; //....code.......... //可以在自己实体里面写一些单表的DML语句 static public Users queryUser(String name) { Users u = new Users(); u.setUserName(name); List<Users> list = VampireBeanFactory.instance().target() .selectList(BuilderAccessName.selectName(Users.class), u); if(list.size()== 1) return list.get(0); return null; } }
只要有关系可以在任何地方直接调用实体的DML方法而不需要关注他的sql
Users user = new Users(); user.save(); user.update(); user.delete(); user.load();