Android oncreate onupgrade什么时候被调用

在学习Android数据库SQLite之前,必须意识到这一点,目前在Android系统中集成的是SQLite3 版本,SQLite是一个开源的嵌入式数据库,他支持NULL、INTEGER、REAL、TEXT和BLOB数据类型,不支持静态数据类型,而是使用列 关系。可以把SQLite数据库近似看成是一种无数据类型的数据库,你可以把任何类型的资料存放在飞Integer类型的主键之外的其他字段上去,另外字 段的长度也是没有限度的。不过建议一定要在编写SQL语句的时候,按照标准的SQL语法,因为这样在别人看你的代码时候,便于更好的理解。

       SQLite可以解析大部分的标准SQL语句:

       建表语句:create table 表名(主键名 integer primary key autoincrement,其他列名及属性) 查询语句:select * from 表名 where 条件子句 group by 分组子句 having…order by 排序子句。 分页语句:select * from 表名 limit 记录数 offset 开始位置 或者 select * from 表名 limit 开始位置,记录数 插入语句:insert into 表名(字段列表) values (值列表) 更新语句:update 表名 set 字段名=值 where 条件子句 删除语句:delete from 表名 where 条件子句

        删表语句:drop table if exists 表名

        而为了方便对数据库进行版本管理,建议在开发项目的时候使用SQLiteOpenHelper类,它提供了两个重要的方法,分别是 onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db,int oldVersion,int vewVersion),前者用于初次使用软件时生成数据库,后者用于升级软件时更新数据库表结构。提示一下,在软件升级前,最好对原有数据进行备份,在 新表建好后把数据导入新表中。实现了这两个方法,就可以用他的getWritableDatabase()和getReadableDatabase() 来获得数据库。这里提醒一句,在使用SQLite的进行查询时最好用占位符“?”来代替各值,例如:

java代码:

  1. SQLiteDatabase db=databaseHelper.getWritableDatabase();
  2. db.execSQL(“update person set name=?,age=? where personid=?”,new Obect{person.getName(),person.getAge(),person.getId()});
复制代码


        execSQL()方法是用来执行除查找语句外的sql语句,查找语句用rawQuery()来执行它会放回一个Cursor。当然,他还提供了封装好的Java类方法供我们操作。具体方法不介绍了,可以直接查看文档中SQLiteDatabase类的用法。

        那要查看数据库中的内容怎么办呢?一种方法是把数据库文件导出到电脑中,然后用SQLite Developer这个软件即可打开查看其中的结构和内容。另一种是直接用命令行查看(推荐),可以通过adb shell进入模拟器的Linux控制台,找到数据库文件,用#sqlite3 数据库名 的方式进入数据库,如此即可查看数据库中的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio中调用SQL数据库可以通过以下步骤实现: 1. 配置依赖项:在项目的build.gradle文件中添加以下依赖项: ```groovy implementation 'com.android.volley:volley:1.2.0' implementation 'com.google.code.gson:gson:2.8.7' ``` 2. 创建数据库帮助类:创建一个继承自SQLiteOpenHelper的类,用于创建和管理数据库。在该类中,你可以定义数据库的表和列,并实现数据库的创建和升级逻辑。 3. 执行SQL操作:使用SQLiteDatabase类执行SQL操作,例如插入、查询、更新和删除数据。你可以使用execSQL()方法执行原始的SQL语句,或者使用insert()、query()、update()和delete()等方法执行常见的SQL操作。 4. 处理数据库操作的线程:为了避免在主线程中执行耗时的数据库操作,你可以使用线程或异步任务来执行这些操作。这样可以确保应用的响应性和流畅性。 下面是一个简单的示例代码,演示了如何在Android Studio中调用SQL数据库: ```java // 创建数据库帮助类 public class DBHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "mydatabase.db"; private static final int DATABASE_VERSION = 1; public DBHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 创建表 String createTableQuery = "CREATE TABLE IF NOT EXISTS mytable (id INTEGER PRIMARY KEY, name TEXT)"; db.execSQL(createTableQuery); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 升级数据库 String dropTableQuery = "DROP TABLE IF EXISTS mytable"; db.execSQL(dropTableQuery); onCreate(db); } } // 执行SQL操作 public class MainActivity extends AppCompatActivity { private DBHelper dbHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dbHelper = new DBHelper(this); SQLiteDatabase db = dbHelper.getWritableDatabase(); // 插入数据 ContentValues values = new ContentValues(); values.put("name", "John"); db.insert("mytable", null, values); // 查询数据 Cursor cursor = db.query("mytable", null, null, null, null, null, null); while (cursor.moveToNext()) { int id = cursor.getInt(cursor.getColumnIndex("id")); String name = cursor.getString(cursor.getColumnIndex("name")); Log.d("MainActivity", "id: " + id + ", name: " + name); } cursor.close(); db.close(); } } ``` 请注意,这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值