您的位置:首页 > 移动开发 > Android开发

关于Sqlite数据库连接Android

2016-03-25 21:51 465 查看
最近因为要做一个安卓的课设,涉及到了许多数据库方面的支持,搜了很多CSDN的文章以及百度了许多博客,总的来说大底千篇一律,或者过于复杂,自己整理了一下文章,希望能够精简的讲述如果连接数据库。

笔者搜集网上博文,大抵可以分为两种方法实现通过Android对Sqlite数据库的操作.

其中方法一是新建一个类继承SQLiteOpenHelper类作为帮助类,当需要的时候调用帮助类里面的方法进行修改。

方法二是SQLiteDatabase类定义一个对象,然后通过函数实现对数据库的修改。

综合两种方法,笔者觉得方法二更为简单,因为很多都是数据库语句,可以很自由的修改。这两种方法在后文的源代码中都有用到,其中数据的添加笔者用方法一实现,数据的删除查找排序笔者用方法二实现,读者可以自行对比。本文主要介绍方法一。

1.首先笔者新建一个Android工程,新建一个EditText,一个Listview,三个Button

Xml文件新加代码如下:

<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:ems="10"
/>

<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/button1"
android:layout_alignLeft="@+id/editText1"
android:layout_alignParentRight="true"
android:layout_below="@+id/editText1" >

</ListView>

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:text="添加" />

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/listView1"
android:layout_toRightOf="@+id/button1"
android:text="查询" />

<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/listView1"
android:layout_toRightOf="@+id/button2"
android:text="删除" />

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
32
33
34
35
36
37
38
39
40
41
42
43
44

<EditText

android:id="@+id/editText1"
android:layout_width="wrap_content"

android:layout_height="wrap_content"
android:layout_alignParentLeft="true"

android:layout_alignParentRight="true"
android:layout_alignParentTop="true"

android:ems="10"
/>

<ListView

android:id="@+id/listView1"
android:layout_width="match_parent"

android:layout_height="wrap_content"
android:layout_above="@+id/button1"

android:layout_alignLeft="@+id/editText1"
android:layout_alignParentRight="true"

android:layout_below="@+id/editText1"
>

</ListView>

<Button
android:id="@+id/button1"

android:layout_width="wrap_content"
android:layout_height="wrap_content"

android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"

android:text="添加"
/>

<Button
android:id="@+id/button2"

android:layout_width="wrap_content"
android:layout_height="wrap_content"

android:layout_below="@+id/listView1"
android:layout_toRightOf="@+id/button1"

android:text="查询"
/>

<Button
android:id="@+id/button3"

android:layout_width="wrap_content"
android:layout_height="wrap_content"

android:layout_below="@+id/listView1"
android:layout_toRightOf="@+id/button2"

android:text="删除"
/>

2.在类中声明对象并且绑定监听器,同时声明数据库对象





3.新建一个OpenCreateDB()方法并且在onCreate()中执行这个方法

public void OpenCreateDB(){
db = openOrCreateDatabase("sqldatas", this.MODE_PRIVATE, null);
db.execSQL("CREATE TABLE IF NOT EXISTS student (_id INTEGER PRIMARY KEY AUTOINCREMENT, Text text)");
}

1
2
3
4

public
void OpenCreateDB(){

db =
openOrCreateDatabase("sqldatas",
this.MODE_PRIVATE,
null);
db.execSQL("CREATE TABLE IF NOT EXISTS student (_id
INTEGER PRIMARY KEY AUTOINCREMENT, Text text)");

}

这里表示我们新建一个名叫sqldatas的数据库,里面新建一个拥有记录数据库ID的_id和text类型的Text的名叫student的表。

此时我们可以尝试运行下程序,笔者这里使用的是安卓虚拟机,在Windows环境下以管理员权限打开命令提示符输入adb shell

然后通过cd命令打开到data/data/程序名/databases/可以看到一个数据库文件已经被创建





我们通过sqlite3 sqldatas可以打开这个数据库

再数据.schema命令我们可以查询到数据库的结构





至此,数据库的创建已经实现,下面讲解添加/查询/删除功能。

1.添加功能的实现

首先在Oncreate()中实现对EditText控件的监听

Select=(EditText)findViewById(R.id.editText1);

1

Select=(EditText)findViewById(R.id.editText1);

接着新建一个InsertData()方法

public void InsertData(){
db.execSQL("INSERT INTO student VALUES (NULL,?)", new String[]{Select.getText().toString()});
}

1
2
3

public
void InsertData(){

db.execSQL("INSERT INTO student VALUES (NULL,?)",
new String[]{Select.getText().toString()});
}

看到这里可以发现execSQL里面的语句和数据库操作语句十分像,事实上后面很多语句都是这样的。

然后接着绑定一个按钮,单击时执行InsertData()

Add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
InsertData();
}
});

1
2
3
4
5
6

Add.setOnClickListener(new
View.OnClickListener()
{

@Override
public
void onClick(View
v)
{

InsertData();
}

});

运行效果图如下:





2.显示功能

添加功能Display()

Add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
InsertData();
}
});

1
2
3
4
5
6

Add.setOnClickListener(new
View.OnClickListener()
{

@Override
public
void onClick(View
v)
{

InsertData();
}

});

并且我们将Display()加入到单击查询按钮事件中

值得一提是如果需要加入限定条件 例如查询分数80分以上的 或者姓名为张三的人

只需要修改第三行也就是rawQuery中的语句

例如

Cursor c = da.rawQuery(“SELECT * FROM student order by Text”, null);

这条语句是根据表中Text大小进行排序,当然前提Text得是数字。其他的功能可以参照SQL命令进行测试

效果图:





3.删除命令

添加方法Delect()

public void Delect(){
db.execSQL("DELETE FROM student WHERE Text=?",new String[]{Select.getText().toString()});
}

1
2
3

public
void Delect(){

db.execSQL("DELETE FROM student WHERE Text=?",new
String[]{Select.getText().toString()});
}

并且加入到删除按钮的单击事件中

以上就是关于数据库添加查询删除这些基本功能的实现,如果有哪里写的不对的话希望指出

源码地址:https://github.com/Ninse/Android Sqlite文件夹中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: