博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android学习第九天----SQLite
阅读量:5159 次
发布时间:2019-06-13

本文共 4209 字,大约阅读时间需要 14 分钟。

android中的数据库只有唯一的SQLite,这样便于操作,该数据库是android自带的数据库,用户无需向j2ee那样,没做一个东西要添加一个jar文件,多么的麻烦。

一、数据库的创建

package com.will.db;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class DBConn extends SQLiteOpenHelper{    public DBConn(Context context)    {        super(context, "sql.db", null, 1);            }    @Override    public void onCreate(SQLiteDatabase db)    {        db.execSQL("create table person(id integer primary key autoincrement,name varchar(20),sex varchar(20),tel varchar(20))");    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)    {        db.execSQL("alter table person add column address varchar(20)");    }    }

创建一个类,继承自SQLiteOpenHelper,该类有两个抽象方法,所以就必须实现onCreate跟onUpgrade方法,但是实现这两个方法之后发现程序还是会报错的。这时候要考虑

该类中的构造方法是否有需要传递某些值之类的东西。

数据库的创建跟sql语法是一样的,没有多大的区别,如果写错sql系统还是会报错的。

系统默认自己执行的onCreate方法,在构造方法中需要传入一个1,1代表的是版本号。如果改变1的值,则会执行onUpgrade方法,这个方法的作用是更新对数据库的操作。

写完这个方法之后就可以在mainActivity中调用这个方法,执行完该方法之后就会在系统的data目录下的data目录下,找到自己包的名称,然后会自动生成一个database文件夹,文件夹里面包含一个sql文件,该文件的文件名,就是构造方法中传入的第二个值。

一般来说这个步骤可以通过testcase来实现的。

接下来将数据封装到对象中。

package com.will.entity;public class Person{    private int id;    private String name;    private String sex;    private String tel;    private String address;        public Person(int id, String name, String sex, String tel, String address)    {        super();        this.id = id;        this.name = name;        this.sex = sex;        this.tel = tel;        this.address = address;    }    public Person(String name, String sex, String tel, String address,int id)    {        super();        this.id = id;        this.name = name;        this.sex = sex;        this.tel = tel;        this.address = address;    }            @Override    public String toString()    {        return "Person [id=" + id + ", name=" + name + ", sex=" + sex                + ", tel=" + tel + ", address=" + address + "]";    }    public int getId()    {        return id;    }    public void setId(int id)    {        this.id = id;    }    public String getName()    {        return name;    }    public void setName(String name)    {        this.name = name;    }    public String getSex()    {        return sex;    }    public void setSex(String sex)    {        this.sex = sex;    }    public String getTel()    {        return tel;    }    public void setTel(String tel)    {        this.tel = tel;    }    public String getAddress()    {        return address;    }    public void setAddress(String address)    {        this.address = address;    }}

然后对于数据库的CRUD操作

package com.wil.service;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import com.will.db.DBConn;import com.will.entity.Person;public class DBService{    private DBConn dbConn;    private SQLiteDatabase db;    public DBService(Context context)    {        dbConn = new DBConn(context);         db = dbConn.getReadableDatabase();    }        public void add(Person p)    {        db.execSQL("insert into person values(?,?,?,?,?)" ,new Object[]{p.getId(),p.getName(),p.getSex(),p.getTel(),p.getAddress()});    }        public void del(Integer i)    {        db.execSQL("delete from person where id=?", new Integer[]{i});            }    public void modify(Person p)    {        db.execSQL("update person set name=?,sex=?,tel=?,address=? where id=?", new Object[]{p.getName(),p.getSex(),p.getTel(),p.getAddress(),p.getId()});    }    public Person query(int i)    {        Cursor cursor = db.rawQuery("select * from person where id=?", new String[]{String.valueOf(i)});        if(cursor.moveToNext())        {            String name = cursor.getString(cursor.getColumnIndex("name"));            String sex = cursor.getString(cursor.getColumnIndex("sex"));            String tel = cursor.getString(cursor.getColumnIndex("tel"));            String address = cursor.getString(cursor.getColumnIndex("address"));                        return new Person(i,name,sex,tel,address);        }                return null;    }}

这样就完成数据库的CRUD操作。具体的调用在MainActivity中都可以实现的。

转载于:https://www.cnblogs.com/will-peng/archive/2013/03/15/2960651.html

你可能感兴趣的文章
Java数组排序
查看>>
SpringBoot 使用 MyBatis 分页插件 PageHelper 进行分页查询
查看>>
《DSP using MATLAB》Problem 6.17
查看>>
微信公众平台开发实战Java版之如何网页授权获取用户基本信息
查看>>
beta阶段第一次scrum meeting
查看>>
一周TDD小结
查看>>
(三)建筑物多边形化简系列——去除冗余点
查看>>
Spring Boot Oauth2缓存UserDetails到Ehcache
查看>>
sizeof与strlen的用法
查看>>
2017 ICPCECPC 邀请赛 F,D,E, I 题解
查看>>
Linux 下常见目录及其功能
查看>>
python Termux Android 开发介绍
查看>>
开源框架中常用的php函数
查看>>
Java语法糖初探(三)--变长参数
查看>>
Liunx常用命令(Mile)
查看>>
nginx 的提升多个小文件访问的性能模块
查看>>
C#语言学习:变量的声明与初始化的范围(对比C++)
查看>>
D. Buy a Ticket(优先队列+dijkstra)
查看>>
set&map
查看>>
git解决一个电脑多用户情况(win7)
查看>>