xutils可以从github上下载。
为字段定义类型
从xutils的com.lidroid.xutils.db.converter包中所以的类可以看到,
xutil默认为String定义Text类型,其他大部分定义为Integer类型,但我们实际用的时候并不会为所有的String都定义成Text类型的,有时候我们会定义char(36),nvarchar(48)等,我们有时候会定义的比较灵活。
要自己在类中定义类型,类似于
@Column(column = "email", dbType = "nvarchar(100)")
private String email;
我们需要改一下几个地方:
一、在为Column定义的Annotation中添加String dbType() default "";,为Column定义dbType的annotation属性;
二、在Column类中定义一个dbType数据成员,然后从annotation中获取到定义的数据类型,。this.dbType = ColumnUtils.getDbType(field);
public static String getDbType(Field field) {
Column column = field.getAnnotation(Column.class);
if (column != null && !TextUtils.isEmpty(column.dbType())) {
return column.dbType();
}
return null;
}
三、SqlInfoBuilder类中的buildCreateTableSqlInfo中获取字段类型的地方改为sqlBuffer.append(column.dbType() != null ? column.dbType() : column
.getColumnDbType()),这样就能在数据库中定义了;