1使用intelij idea创建一个andorid项目
2创建如下工具类:
MyDBHelperjava
package comamosandroid_database;
import androidcontentContext;
import androiddatabasesqliteSQLiteDatabase;
import androiddatabasesqliteSQLiteOpenHelper;
import androidutilLog;
/
Created by amosli on 14-6-10
/
public class MyDBHelper extends SQLiteOpenHelper{
/
创建数据库的构造方法
@param context 应用程序上下文
name 数据库的名字
factory 查询数据库的游标工厂一般情况下用sdk默认的
version 数据库的版本一般大于0
/
public MyDBHelper(Context context) {
super(context, "testdb", null, 4);
}
private String tag = "MyDBHelperclass";
/
在数据库第一次创建时会执行
@param db
/
@Override
public void onCreate(SQLiteDatabase db) {
Logd(tag,"onCreate");
//创建一个数据库
dbexecSQL("create table person (personid integer primary key autoincrement ,name varchar(30) )");
}
/
更新数据的时候调用的方法
@param db
@param oldVersion
@param newVersion
/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Logd(tag,"onUpgrade");
//增加一列
dbexecSQL("alter table person add phone varchar(13) null");
}
}
MyActivityjava
package comamosandroid_database;
import androidappActivity;
import androidosBundle;
public class MyActivity extends Activity {
/
Called when the activity is first created
/
@Override
public void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(Rlayoutmain);
MyDBHelper myDBHelper = new MyDBHelper(this);
myDBHelpergetReadableDatabase();
myDBHelperclose();
}
}
3打开生成的testdb
1)下载安装SQLiteStudio(SQLite的可视化工具)
下载地址:>
比如;
1、写一个DBHelper继承自SQLiteOpenHelper
public class DBHelper extends SQLiteOpenHelper{
//数据库的版本
private final static int DB_VERSION = 1;
//数据库名
private final static String DB_NAME = "ladengdb";
private Context mContext;
//我们直接用super调用父类的构造方法,这样我们在实例化DBHelper的时候只需要传入一个上下文参数就可以了
public DBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
thismContext = context;
}
//数据库不存在的时候,调用这个方法
@Override
public void onCreate(SQLiteDatabase db) {
createTables(db,0,0);
}
//版本号发生变化的时候,调用这个方法
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//1删除原来的表
//2调用onCreate重新创建数据库
}
/
建表语句,只需要一行就能建一个表
/
private void createTables(SQLiteDatabase db, int oldVersion, int newVersion) {
//createTable(Movieclass)返回的是sql建表语句
//dbexecSQL(sql) 执行这条建表语句
dbexecSQL(createTable(Movieclass));
}
/
如果没传表明的话,默认使用类名作为表明
@param clazz 实体类
@return
/
private <T> String createTable(Class<T> clazz){
return createTable(clazz, clazzgetSimpleName());
}
/
真正的建表方法
@param clazz 实体类
@param tableName 表明
@return sql建表语句
/
private <T> String createTable(Class<T> clazz , String tableName){
//实例化一个容器,用来拼接sql语句
StringBuffer sBuffer = new StringBuffer();
//sql语句,第一个字段为_ID 主键自增,这是通用的,所以直接写死
sBufferappend("create table if not exists "+ tableName + " "+
"(_ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,");
//得到实体类中所有的公有属性
Field[] fields = clazzgetFields();
//遍历所有的公有属性
for(Field field : fields){
//如果属性不为_id的话,说明是新的字段
if (!fieldgetName()equals("_id")) {
//得到属性的基本数据类型
String type = fieldgetType()getSimpleName();
//如果是String类型的属性,就把字段类型设置为TEXT
if (typeequals("String")) {
sBufferappend(fieldgetName()+" TEXT,");
//如果是int类型的属性,就把字段类型设置为INTEGER
}else if (typeequals("int")) {
sBufferappend(fieldgetName()+" INTEGER,");
}
}
}
//将最后的逗号删除
sBufferdeleteCharAt(sBufferlength()-1);
//替换成); 表明sql语句结束
sBufferappend(");");
//返回这条sql语句
return sBuffertoString();
}
}
2、Movie实体类,实体类中的属性就是表中的字段
public class Movie {
public String title;
public int rating;
public String year;
public String genre;
public String country;
public int price;
}
3、在MainActivityjava中添加如下代码
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(Rlayoutactivity_main);
//实例化我们的DBHelper
DBHelper dbHelper = new DBHelper(this);
//调用了这个方法后,DBHelper中的onCreate才会执行
dbHelpergetReadableDatabase();
}
}
4、创建结果:
以上就是关于android stduio用sqlite怎么创建数据库全部的内容,包括:android stduio用sqlite怎么创建数据库、如何在Eclipse环境下,使用SQLite数据库中建立多个表、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)