ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### HBaseStyle例子 ```java public class HBaseStyle extends AbstractDBStyle { RangeSql rangeSql = null; public HBaseStyle() { super(); rangeSql = new HbaseRange(this); } @Override public int getIdType(Class c,String idProperty) { return DBType.ID_ASSIGN; } @Override public boolean isNoSql(){ return true; } @Override public String getName() { return "hbase"; } @Override public int getDBType() { return DBType.DB_HBASE; } @Override public RangeSql getRangeSql() { return rangeSql; } @Override protected SQLSource generalInsert(Class<?> cls,boolean template){ SQLSource sqlSource = super.generalInsert(cls,template); String upsert = sqlSource.template.replaceFirst("insert","UPSERT"); sqlSource.template = upsert; return sqlSource; } @Override public SQLSource genUpdateById(Class<?> cls) { return this.generalInsert(cls,false); } } ``` * getIdType 跟clickhouse一样,没有自增和序列主键,因此设定为ID_ASSIGN * rangeSql,返回一个HbaseRange实例,Hbase翻页跟MySql类似但略有不同 * generalInsert,此方法是根据实体生成内置insert语句,因为hbase使用upsert,而不是insert,因此修改了AbtractStyle.generalInsert返还默认的SQL * genUpdateById,同样根据id修改对象,也采用UPSERT方式