mybatis自动生成sql

实现功能是“解决单个表的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/

猜你喜欢

转载自anglny.iteye.com/blog/1870915