|
实现功能是“解决单个表的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();
源码下载地址:https://code.google.com/p/sa-auto-mybatis-installer/ |
|
|
|
|
|
|