string createtable(classclazz , string tablename){
//实例化一个容器,用来拼接sql语句
stringbuffer sbuffer = new stringbuffer();
//sql语句,第一个字段为_id 主键自增,这是通用的,所以直接写死
sbuffer.append("create table if not exists "+ tablename + " "+
"(_id integer primary key autoincrement not null,");
//得到实体类中所有的公有属性
field[] fields = clazz.getfields();
//遍历所有的公有属性
for(field field : fields){
//如果属性不为_id的话,说明是新的字段
if (!field.getname().equals("_id")) {
//得到属性的基本数据类型
string type = field.gettype().getsimplename();
//如果是string类型的属性,就把字段类型设置为text
if (type.equals("string")) {
sbuffer.append(field.getname()+" text,");
//如果是int类型的属性,就把字段类型设置为integer
}else if (type.equals("int")) {
sbuffer.append(field.getname()+" integer,");
}
}
}
//将最后的逗号删除
sbuffer.deletecharat(sbuffer.length()-1);
//替换成); 表明sql语句结束
sbuffer.append(");");
//返回这条sql语句
return sbuffer.tostring();
}
}
2、movie实体类,实体类中的属性就是表中的字段
public class movie {
public string title;
public int rating;
public string year;
public string genre;
public string country;
public int price;
}
3、在mainactivity.java中添加如下代码
public class mainactivity extends activity {
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
//实例化我们的dbhelper
dbhelper dbhelper = new dbhelper(this);
//调用了这个方法后,dbhelper中的oncreate才会执行
dbhelper.getreadabledatabase();
}
}
4、创建结果: