【andorid基础篇】数据库的创建以及增删改查

I,安卓下的数据库

安卓下使用的数据库是SQLite,安卓为我们提供的API是SQLiteOpenHelper。

1,创建一个数据库

1)写一类去继承抽象类SQLiteOpenHelper,我们需要复写相关的方法:

 1 public WcxSQLite(Context context, String name, CursorFactory factory,int version) {           super(context, name, factory, version);
 3     }
 4
 5     public void onCreate(SQLiteDatabase db) {
 6
 7     }
 8
 9     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
10
11     }
对于这些参数Context context, String name, CursorFactory factory,int versioncontext表示的是上下文,name则是创建数据库的名字,factory表示游标工厂,当为null的时候,表示使用默认的游标工厂,version顾名思义表示的是数据库的版本。

对于onCreate方法,代表的是数据库创建时,就会调用的方法,所以我们可以在方法里去写一些初始化的动作。而onUpgrade方法,只有当数据库的版本发生变化时,才会调用。

下面我们在onCreate方法中,进行一些初始化的操作,比如创建出表结构:
1 public void onCreate(SQLiteDatabase db) {
2         /**
3          * 安卓下的SQLite是移动平台的嵌入式数据库,实际上所定义的类型,如(int varchar),真正在底层存放的时候都是以String字符来存放的。
4          * varchar(20)和varchar(10)没有任何区别!
5          */
6         db.execSQL("create table person(id int primary key auto_increment,name varchar(20),number varchar(20))");
7     }

II,实现增删改查(普通的方式)

我们可以写一个操作数据库的dao,在构造方法中就创建数据库。如:

1 private PersonSQLiteOpenHelper helper;
2     public PersonDao(Context context){
3         /**
4          * 在构造方法中实现数据库的初始化
5          */
6         helper=new PersonSQLiteOpenHelper(context);
7     }

其实创建数据库相关类的对象,并没有实际的在硬盘上创建一个数据库文件,就如同File一样,我们需要调用它的读和写的方法,才算真正的创建数据库。

1)增加数据到数据库:

建议采用db.execSQL(sql, bindArgs)方法,因为这个方法可以防止SQL注入,不容易写错。该方法并没有返回值,所以我们无法得知是否添加成功

2)查询数据库

对于查询使用的是rawQuery(String sql, String[] selectionArgs)方法,它返回的是游标Cursor,对于一张表,游标最初位于表的第一行的前面,如图:

画红线的就是游标最先指向的行,调用它的movenext方法,游标就一行一行的往下移动。

3)删除,更改数据库

同样没有返回值,使用普通方式来操作数据库的弊端已经显现。

4)查询所有

附上代码:

 1 /**
 2      *查询所有的数据。把查询到的数据添加到javabea中,再存放在集合中,在返回集合
 3      */
 4     public List<Person> findAll(){
 5         SQLiteDatabase db=helper.getWritableDatabase();
 6         Cursor cursor=db.rawQuery("select * from person", null);
 7         List<Person> list=new ArrayList<Person>();
 8         while(cursor.moveToNext()){
 9             /**
10              * id为第一列
11              */
12             int id=cursor.getInt(cursor.getColumnIndex("id"));
13             /**
14              * 而name和number为第二列和第三列
15              */
16             String name=cursor.getString(cursor.getColumnIndex("name"));
17             String number=cursor.getString(cursor.getColumnIndex("number"));
18             Person person=new Person(id, name, number);
19             /**
20              * 添加到集合
21              */
22             list.add(person);
23         }
24         return list;
25     }

先把数据库的数据查询出来,封装到数据库。接着添加到集合,然后在测试方法中,遍历集合,就可以查询所有的数据。

III,增删改查(andorid的方式)

对于普通方式操作数据,我认为最大的缺点就是没有返回值,即使我没操作成功,也不会有什么提示,而使用安卓的方式,几乎解决了这一困扰。

1)增加数据

使用的是db.insert(table, nullColumnHack, values)方法。

table指的就是要往哪张表去插入数据,

nullColumnHack表示的当你为它指定值后,当没有成功插入数据时,就会默认的为你插入null到表中,所以当我们不需要这样的功能时,就把它设置为null。

values类型是ContextValues,可以把它理解为map,添加键值对,键代表列名,值代表列所对应的值。

public long add(String name,String number){
        SQLiteDatabase db=helper.getWritableDatabase();
                ContentValues values=new ContentValues();
        values.put(name, number);
        long id=db.insert("person",null, values);
        db.close();
        return id;
    }

insert方法是有返回值的,返回的是新添加行的id,如果没有添加成功,就会返回-1.所以我们可以根据返回值来判断是否添加成功。

2)查询数据

对于查询数据,我只说它的方法:

db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy)

table:插入的表名

columns:查询哪些列

selection, selectionArgs:where语句和where语句对应的值

groupBy, having, orderBy:是否分组,是否过滤,是否排序,不管的话,写为null即可。

3)修改和删除数据

db.update(table, values, whereClause, whereArgs)

db.delete(table, whereClause, whereArgs)

它们的返回值是影响到的行数,如果没有成功,返回的是0

IV,一个小技巧

当我们写好了数据库后,可以写一个测试类来测试是否操作成功。安卓中写测试类,不仅需要继承AndroidTestCase类,还需要在清单文件去配置。

如果我们忘记了怎么去配置,可以新建一个测试工程,去它的清单文件去拷贝。

时间: 2024-11-09 06:58:27

【andorid基础篇】数据库的创建以及增删改查的相关文章

数据库的创建和增删改查,外键和主键的创建

[关键字 ]paimary key [代表主键],not null[ 非空 ]foreign key[ 代表外键] (zhu) references[引用] zhu ( code)[ 建立外键关系 ]auto_increment[自动递增]注释语法:用#注释. 创建表create table test(  创建列:  code varchar[字符串]( 写长度 ),   name varchar( 20 )) 注意:1.每条语句后加分号:      2.最后一列不需要加逗号:      3.

Android(java)学习笔记245:ContentProvider之银行数据库创建和增删改查的实现

1.Android的四大组件: (1)Activity  用户交互的UI界面 (2)Service  后台运行的服务 (3)BroadcastReceiver 广播接收者 (4)ContentProvider  内容提供者 2. ContentProvider  内容提供者 用途:把应用程序私有的数据暴露给别的应用程序. 3.下面通过一个银行数据库创建和增删改查的实现案例说明ContentProvider的使用: (1)首先我们这里要用到数据库,首先我们必须先扩展一个抽象类SQLiteOpenH

Android中使用Sqlite数据库 (二) 增删改查

定义接口 package com.example.android_db.service; import java.util.List; import java.util.Map; public interface PersonService { public boolean addPerson(Object[] params); public boolean deletePerson(Object[] params); public boolean updatePerson(Object[] p

MySQL数据库之表的增删改查

目录 MySQL数据库之表的增删改查 1 引言 2 创建表 3 删除表 4 修改表 5 查看表 6 复制表 MySQL数据库之表的增删改查 1 引言 1.MySQL数据库中,数据库database就是硬盘上的一个文件夹,表table就是文件夹里面的一个文件 2.表中的一条记录就相当于文件中的一行内容,与excel表类似,表table中有不同的标题,称之为字段 3.本节对表结构做增删改查,即创建表.删除表.修改表.查看表结构,至于表中数据的增删改查日后单独总结 2 创建表 1.创建一张表,需要建一

Django 连接数据库,数据库表字段的增删改查

如何获取前端数据 request方法: 获取前端数据的方式: request.POST(获取表单中发送的数据).request.GET  (获取的是url后面跟的数据) 前端:注意name属性的值即为后台大字典的key ,即通过key来取到前端发过来的数据 后端: views :  request.POST.get()  方法默认取列表中的最后一个值,request.POST.getlist()    取列表 数据库:Django连接数据库配置: 1.   setting.py : 配置数据库

【ASP】ASP对Access数据库的连接、增删改查及ASP的基本语法

本文讨论的是ASP,而不是Visual Studio写出来的.ASPX也就是ASP.NET. ASP不需要任何插件的支持,关键你是配置好WINDOWS的IIS服务器,把页面扔在上面执行就可以了. 不同WINDOWS系统的IIS服务器配置,除了某些被阉割的WINXP装机版系统之外,都支持IIS服务器配置,都在WINDOWS的组件中,不需要下载任何东西.如何配置IIS服务器不是本文讨论的重点. 一.基本目标 假设Access2007数据库database.mdb中存在表test如下: id为自增列,

java H2数据库使用并实现增删改查功能

原文:java H2数据库使用并实现增删改查功能 代码下载地址:http://www.zuidaima.com/share/1550463278058496.htm package com.zuidaima.h2sql.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.St

XML——对XML文档的创建与增删改查

原文:XML--对XML文档的创建与增删改查 一.创建的第一种方式  //1.创建一个XML文档 XmlDocument doc = new XmlDocument(); //2.创建第一行描述信息 XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null); //3.将创建的第一行描述信息添加到文档中 doc.AppendChild(dec); //4.给文档添加根节点 XmlElemen

使用JDBC分别利用Statement和PreparedStatement来对MySQL数据库进行简单的增删改查以及SQL注入的原理

一.MySQL数据库的下载及安装 https://www.mysql.com/ 点击DOWNLOADS,拉到页面底部,找到MySQL Community(GPL)Downloads,点击 选择下图中的MySQL Community Server 选择想要的版本进行下载 之后的步骤,因为本人已经安装过MySQL数据库,而卸载重装会比较麻烦,卸载不干净会导致新的装不上,所以可以参考下面的博客,因为官网的改动,前面的部分已经与该博客不符,按照本人在上面的介绍寻找即可 https://blog.csdn