基础篇1.7 SQLite

基础篇1.7  SQLite

一、SQLite简介

1、  英文官网:http://www.sqlite.org/,中文社区:http://www.sqlite.com.cn/

2、  Android 下的sqlite不需要身份验证,可以直接建立连接,且属于单文件数据库。

3、  只需获得SQLiteDatabase对象后,就可以通过其方法对数据进行操作,如execSQL等。

二、使用adb访问SQLite

1、  进入到adb.exe所在的目录,输入adb  shell,可以进入android的shell窗口中


2、  进入到shell界面后,此界面下的操作和linux操作类似,可以使用Linux的常用命令,如ll、ls、cd等。系统自带的一些程序,以及自己开发的一些程序在/data/data目录下,如图:

3、  查看数据库和表结构命令:sqlite3 mydb3(mydb3为数据库的名字)可以进入到mydb3这个数据库中,.schema命令可以查看表结构。

4、  查看表中的字段信息。

 

三、SQLite的增、删、改、查

1、例子界面:

2、layout配置文件:

         <TableLayoutxmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="horizontal"

    tools:context=".MainActivity">

   <TableRow>

        <Button

           android:id="@+id/open"

           android:layout_height="wrap_content"

           android:layout_width="wrap_content"

           android:text="创建或者打开数据库"/>

        <Button

           android:id="@+id/close"

           android:layout_height="wrap_content"

           android:layout_width="wrap_content"

           android:text="关闭数据库"/>

   </TableRow>

   <TableRow>

        <Button

           android:id="@+id/add"

           android:layout_height="wrap_content"

           android:layout_width="wrap_content"

           android:text="新增"/>

        <Button

           android:id="@+id/modify"

           android:layout_height="wrap_content"

           android:layout_width="wrap_content"

           android:text="修改"/>

   </TableRow>

   <TableRow>

        <Button

           android:id="@+id/query"

           android:layout_height="wrap_content"

           android:layout_width="wrap_content"

           android:text="查询"/>

        <Button

           android:id="@+id/del"

           android:layout_height="wrap_content"

           android:layout_width="wrap_content"

           android:text="删除"/>

   </TableRow>

   <TableRow>

        <TextView

           android:id="@+id/myTextView"

           android:layout_width="fill_parent"

           android:layout_height="wrap_content"

           android:text="显示内容"/>

   </TableRow>

</TableLayout>

4、  源代码:

packagecom.solidwang.sqllite;

 

importandroid.app.Activity;

importandroid.database.Cursor;

importandroid.database.sqlite.SQLiteDatabase;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

importandroid.widget.TextView;

importandroid.widget.Toast;

 

publicclass MainActivity extends Activity {

private SQLiteDatabase sld;

private Button open, close, add, modify, query,del;

private TextView textView;

@Override

protected void onCreate(BundlesavedInstanceState) {

           super.onCreate(savedInstanceState);

           setContentView(R.layout.main);

           open = (Button)findViewById(R.id.open);

           close = (Button)findViewById(R.id.close);

           add = (Button)findViewById(R.id.add);

           modify = (Button)findViewById(R.id.modify);

           query = (Button)findViewById(R.id.query);

           del = (Button)findViewById(R.id.del);

           open.setOnClickListener(newOpenListener());

           close.setOnClickListener(newCloseListener());

           add.setOnClickListener(newAddListener());

           query.setOnClickListener(newQueryListener());

           del.setOnClickListener(newDelListener());

           modify.setOnClickListener(newModifyListener());

}

class OpenListener implements OnClickListener {

           @Override

           public void onClick(View v) {

                    //创建或者打开数据库

                    createOrOpenDatabase();

           }

}

class CloseListener implements OnClickListener{

           @Override

           public void onClick(View v) {

                    //关闭数据库

                    closeDatabase();

           }

}

class AddListener implements OnClickListener {

           @Override

           public void onClick(View v) {

                    //插入数据

                    insert();

           }

}

class QueryListener implements OnClickListener{

           @Override

           public void onClick(View v) {

                    //查询数据

                    query();

           }

}

class DelListener implements OnClickListener {

           @Override

           public void onClick(View v) {

                    //删除数据

                    del();

           }

}

class ModifyListener implements OnClickListener{

           @Override

           public void onClick(View v) {

                    modify();

           }

}

private void createOrOpenDatabase() {

           try {

                    sld =SQLiteDatabase.openDatabase("/data/data/com.solidwang.sqllite/mydb3",null, SQLiteDatabase.OPEN_READWRITE|SQLiteDatabase.CREATE_IF_NECESSARY);

                    System.out.println("sld="+ sld);

                    setText("打开数据库");

                    String sql = "createtable if not exists students(sname varchar(20), sphone varchar(20));";

                    sld.execSQL(sql);

           } catch (Exception e) {

                    Toast.makeText(MainActivity.this,"创建数据库失败", Toast.LENGTH_LONG).show();

           }

}

private void closeDatabase() {

           sld.close();

           setText("关闭数据库");

}

private void insert() {

           createOrOpenDatabase();

           String sql = "insert intostudents values('solidwang', '123456');";

           sld.execSQL(sql);

           setText("创建一条记录");

}

private void query() {

           createOrOpenDatabase();

           String sql = "select sname,sphone from students";

           Cursor cursor = sld.rawQuery(sql, newString[]{});

           String rs = "";

           while(cursor.moveToNext()) {

                    rs = rs + cursor.getString(0)+ " " + cursor.getString(1);

           }

           setText(rs);

}

private void del() {

           createOrOpenDatabase();

           String sql = "delete fromstudents";

           sld.execSQL(sql);

           setText("清空所有数据");

}

private void modify() {

           createOrOpenDatabase();

           String sql = "update studentsset sphone='2595411' where sname='solidwang'";

           sld.execSQL(sql);

           setText("修改成功");

}

private void setText(String text) {

           textView = (TextView)findViewById(R.id.myTextView);

           textView.setText(text);

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值