菜鸟的博客

纵有疾风起,人生不言弃。

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

结对作业6

PSP0(Personal Software Process Stages ) 所需时间(TIME)
Planning(计划)  今天把安卓端的数据库又搞了搞
   estimate[估计这个任务需要多少时间 ] 2h
Development (开发 )  
   · Design [具体设计 ] 1
   · Coding [具体编码 ] 2
   · Test [测试(自我测试,修改代码,提交修改)] 2
Reporting(报告 )  
  · Postmortem & Process Improvement Plan [事后总结, 并提出过程改进计划 ] 1h
合计 8h
复制代码
安卓数据库的操作:今天主要学了下安卓数据库方面的简单知识。数据库主要用于复杂的数据储存。

安卓数据库简介:安卓SQLite数据库是一款轻量级的关系型数据库,它的运算速度非常快,占用资源很 少,通常只需要几百KB的内存就足够了。SQLite不仅支持标 准的SQL语法,还遵循了数据库的ACID事务,所以只要你以前使用过其他的关系型数据库,就 可以很快地上手SQLite。而SQLite又比一般的数据库要简单得多,它甚至不用设置用户名和密码 就可以使用。

数据库的创建:Android为了让我们能够更加方便地管理数据库,专门提供了一个SQLiteOpenHelper帮助类,借 助这个类就可以非常简单地对数据库进行创建和升级。

新建一个Java类继承SQLiteOpenHelper类,在主活动中调用该类即可实现对数据库的创建。

~~~
public class MyDatabaseHelper extends SQLiteOpenHelper {

</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> final String CREATE_BOOK = <span style="color: #800000;">"</span><span style="color: #800000;">create table book ( </span><span style="color: #800000;">"</span> +
        <span style="color: #800000;">"</span><span style="color: #800000;">id integer primary key autoincrement,</span><span style="color: #800000;">"</span> +
        <span style="color: #800000;">"</span><span style="color: #800000;">author text,</span><span style="color: #800000;">"</span> +
        <span style="color: #800000;">"</span><span style="color: #800000;">price real,</span><span style="color: #800000;">"</span> +
        <span style="color: #800000;">"</span><span style="color: #800000;">pages integer,</span><span style="color: #800000;">"</span> +
        <span style="color: #800000;">"</span><span style="color: #800000;">name text )</span><span style="color: #800000;">"</span><span style="color: #000000;">;

</span><span style="color: #0000ff;">private</span><span style="color: #000000;"> Context mContext;

</span><span style="color: #0000ff;">public</span> MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, <span style="color: #0000ff;">int</span><span style="color: #000000;"> version) {
    super(context, name, factory, version);
    mContext </span>=<span style="color: #000000;"> context;
}

@Override
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> onCreate(SQLiteDatabase db) {
    db.execSQL(CREATE_BOOK);
    Toast.makeText(mContext, </span><span style="color: #800000;">"</span><span style="color: #800000;">数据库成功创建</span><span style="color: #800000;">"</span><span style="color: #000000;">, Toast.LENGTH_SHORT).show();
}

@Override
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> onUpgrade(SQLiteDatabase db, <span style="color: #0000ff;">int</span> oldVersion, <span style="color: #0000ff;">int</span><span style="color: #000000;"> newVersion) {
      
}

}
~~~

<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> NormalActivity extends AppCompatActivity {
    </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> MyDatabaseHelper dbHelper;

    @Override
    </span><span style="color: #0000ff;">protected</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.normal_layout);
   dbHelper </span>= <span style="color: #0000ff;">new</span> MyDatabaseHelper(<span style="color: #0000ff;">this</span>, <span style="color: #800000;">"</span><span style="color: #800000;">BookStore.db</span><span style="color: #800000;">"</span>, <span style="color: #0000ff;">null</span>, <span style="color: #800080;">1</span><span style="color: #000000;">);  
          Button bt3 </span>=<span style="color: #000000;"> findViewById(R.id.create_database);
             bt3.setOnClickListener(</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> View.OnClickListener() {
            @Override
            </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> onClick(View v) {
                dbHelper.getWritableDatabase();
            }
        });
    }
}
</span>~~~<span style="color: #000000;">

如果想建立多个数据库,由于就需要对数据库进行更新升级,这里建立两个数据库,重写onUpgrade() 方 法。

```
@Override
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span> onUpgrade(SQLiteDatabase db, <span style="color: #0000ff;">int</span> oldVersion, <span style="color: #0000ff;">int</span><span style="color: #000000;"> newVersion) {
        db.execSQL(</span><span style="color: #800000;">"</span><span style="color: #800000;">drop table if exists Book</span><span style="color: #800000;">"</span><span style="color: #000000;">);
        db.execSQL(</span><span style="color: #800000;">"</span><span style="color: #800000;">drop table if exists Category</span><span style="color: #800000;">"</span><span style="color: #000000;">);
        onCreate(db);
}
```

数据库的增改删查

</span>~~~<span style="color: #000000;">
add.setOnClickListener(</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> View.OnClickListener() {
            @Override
            </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> onClick(View v) {
                SQLiteDatabase db </span>=<span style="color: #000000;"> dbHelper.getWritableDatabase();
                ContentValues values </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ContentValues();
                values.put(</span><span style="color: #800000;">"</span><span style="color: #800000;">name</span><span style="color: #800000;">"</span>, <span style="color: #800000;">"</span><span style="color: #800000;">暴走大漫画</span><span style="color: #800000;">"</span><span style="color: #000000;">);
                values.put(</span><span style="color: #800000;">"</span><span style="color: #800000;">author</span><span style="color: #800000;">"</span>, <span style="color: #800000;">"</span><span style="color: #800000;">张子豪</span><span style="color: #800000;">"</span><span style="color: #000000;">);
                values.put(</span><span style="color: #800000;">"</span><span style="color: #800000;">pages</span><span style="color: #800000;">"</span>, <span style="color: #800080;">514</span><span style="color: #000000;">);
                values.put(</span><span style="color: #800000;">"</span><span style="color: #800000;">price</span><span style="color: #800000;">"</span>, <span style="color: #800080;">18.9</span><span style="color: #000000;">);
                db.insert(</span><span style="color: #800000;">"</span><span style="color: #800000;">Book</span><span style="color: #800000;">"</span>, <span style="color: #0000ff;">null</span><span style="color: #000000;">, values);
                values.clear();
                values.put(</span><span style="color: #800000;">"</span><span style="color: #800000;">name</span><span style="color: #800000;">"</span>, <span style="color: #800000;">"</span><span style="color: #800000;">金刚大力手</span><span style="color: #800000;">"</span><span style="color: #000000;">);
                values.put(</span><span style="color: #800000;">"</span><span style="color: #800000;">author</span><span style="color: #800000;">"</span>, <span style="color: #800000;">"</span><span style="color: #800000;">王子顺</span><span style="color: #800000;">"</span><span style="color: #000000;">);
                values.put(</span><span style="color: #800000;">"</span><span style="color: #800000;">pages</span><span style="color: #800000;">"</span>, <span style="color: #800080;">60</span><span style="color: #000000;">);
                values.put(</span><span style="color: #800000;">"</span><span style="color: #800000;">price</span><span style="color: #800000;">"</span>, <span style="color: #800080;">5</span><span style="color: #000000;">);
                db.insert(</span><span style="color: #800000;">"</span><span style="color: #800000;">Book</span><span style="color: #800000;">"</span>, <span style="color: #0000ff;">null</span><span style="color: #000000;">, values);
                Toast.makeText(NormalActivity.</span><span style="color: #0000ff;">this</span>, <span style="color: #800000;">"</span><span style="color: #800000;">添加数据成功</span><span style="color: #800000;">"</span><span style="color: #000000;">, Toast.LENGTH_SHORT).show();
            }
        });
</span>~~~

~~~<span style="color: #000000;">
update.setOnClickListener(</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> View.OnClickListener() {
            @Override
            </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> onClick(View v) {
                SQLiteDatabase db </span>=<span style="color: #000000;"> dbHelper.getWritableDatabase();
                ContentValues values </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ContentValues();
                values.put(</span><span style="color: #800000;">"</span><span style="color: #800000;">price</span><span style="color: #800000;">"</span>, <span style="color: #800080;">10</span><span style="color: #000000;">);
                db.update(</span><span style="color: #800000;">"</span><span style="color: #800000;">Book</span><span style="color: #800000;">"</span>, values, <span style="color: #800000;">"</span><span style="color: #800000;">name=?</span><span style="color: #800000;">"</span>, <span style="color: #0000ff;">new</span> String[]{<span style="color: #800000;">"</span><span style="color: #800000;">暴走大漫画</span><span style="color: #800000;">"</span><span style="color: #000000;">});
            }
        });
</span>~~~

~~~<span style="color: #000000;">
delete.setOnClickListener(</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> View.OnClickListener() {
            @Override
            </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> onClick(View v) {
                SQLiteDatabase db</span>=<span style="color: #000000;">dbHelper.getWritableDatabase();
                db.delete(</span><span style="color: #800000;">"</span><span style="color: #800000;">Book</span><span style="color: #800000;">"</span>,<span style="color: #800000;">"</span><span style="color: #800000;">pages&gt;?</span><span style="color: #800000;">"</span>,<span style="color: #0000ff;">new</span> String[]{<span style="color: #800000;">"</span><span style="color: #800000;">500</span><span style="color: #800000;">"</span><span style="color: #000000;">});
            }
        });
</span>~~~

~~~<span style="color: #000000;">
query.setOnClickListener(</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> View.OnClickListener() {
            @Override
            </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> onClick(View v) {
                SQLiteDatabase db</span>=<span style="color: #000000;">dbHelper.getWritableDatabase();
                Cursor cursor</span>=db.query(<span style="color: #800000;">"</span><span style="color: #800000;">Book</span><span style="color: #800000;">"</span>,<span style="color: #0000ff;">null</span>,<span style="color: #800000;">"</span><span style="color: #800000;">pages&gt;?</span><span style="color: #800000;">"</span>,<span style="color: #0000ff;">new</span> String[]{<span style="color: #800000;">"</span><span style="color: #800000;">10</span><span style="color: #800000;">"</span>},<span style="color: #0000ff;">null</span>,<span style="color: #0000ff;">null</span>,<span style="color: #0000ff;">null</span>,<span style="color: #0000ff;">null</span><span style="color: #000000;">);
                </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(cursor.moveToFirst()){
                    </span><span style="color: #0000ff;">do</span><span style="color: #000000;">{
                        String name</span>=cursor.getString(cursor.getColumnIndex(<span style="color: #800000;">"</span><span style="color: #800000;">name</span><span style="color: #800000;">"</span><span style="color: #000000;">));
                        String author</span>=cursor.getString(cursor.getColumnIndex(<span style="color: #800000;">"</span><span style="color: #800000;">author</span><span style="color: #800000;">"</span><span style="color: #000000;">));
                        </span><span style="color: #0000ff;">int</span> pages=cursor.getInt(cursor.getColumnIndex(<span style="color: #800000;">"</span><span style="color: #800000;">pages</span><span style="color: #800000;">"</span><span style="color: #000000;">));
                        </span><span style="color: #0000ff;">double</span> price= cursor.getDouble(cursor.getColumnIndex(<span style="color: #800000;">"</span><span style="color: #800000;">price</span><span style="color: #800000;">"</span><span style="color: #000000;">));
                        Log.d(</span><span style="color: #800000;">"</span><span style="color: #800000;">数据库查找</span><span style="color: #800000;">"</span>,<span style="color: #800000;">"</span><span style="color: #800000;">书名:</span><span style="color: #800000;">"</span>+<span style="color: #000000;">name);
                        Log.d(</span><span style="color: #800000;">"</span><span style="color: #800000;">数据库查找</span><span style="color: #800000;">"</span>,<span style="color: #800000;">"</span><span style="color: #800000;">作者:</span><span style="color: #800000;">"</span>+<span style="color: #000000;">author);
                        Log.d(</span><span style="color: #800000;">"</span><span style="color: #800000;">数据库查找</span><span style="color: #800000;">"</span>,<span style="color: #800000;">"</span><span style="color: #800000;">页数:</span><span style="color: #800000;">"</span>+<span style="color: #000000;">pages);
                        Log.d(</span><span style="color: #800000;">"</span><span style="color: #800000;">数据库查找</span><span style="color: #800000;">"</span>,<span style="color: #800000;">"</span><span style="color: #800000;">价格:</span><span style="color: #800000;">"</span>+<span style="color: #000000;">price);
                    }</span><span style="color: #0000ff;">while</span><span style="color: #000000;"> (cursor.moveToNext());
                }
                cursor.close();
            }
        });
</span>~~~</pre>
</div>
<p>&nbsp;</p>
复制代码

posted on   hhmzd233  阅读(6)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2023-04-17 2023.4.17
点击右上角即可分享
微信分享提示