android开发之路09(浅谈SQLite数据库01),androidsqlite
1.SQLite数据库:
SQLite 是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。 其特点是高度便携、使
用方便、结构紧凑、高效、可靠。 与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下 - 只要确保
SQLite的二进制文件存在即可开始创建、连接和使用数据库。
对于SDK来讲,已经内置了SQLite的程序,因此我们不需要在SQLite官网上下载。一般数据库采用的都是静态的数据类
型,而我们的SQLite数据库采用的是动态数据库,会根据存入值自动判断。SQLite 数据库相对于其他数据库最大的特点是我们
可以把各种类型的数据保存到任何字段中,而不用关心字段声明的类型是什么。有一种特殊的情况是,定义为INTEGER PRIMARY
KEY 的字段只能存储64位整数。SQLite具有以下五种类型:
1.NULL:空值;
2.INTEGER:带符号的整形,具体取决于存入数字的范围大小;
3.REAL:浮点数字;
4.TEXT:字符串文本;
5.BLOB:二进制对象;
2.相关操作
①创建数据库:sqlite3 test.db;
②创建表:create table userInfo(userId integer primary key autoincrement,name varchar(20));
SQLite数据库可以解析大部分标准SQL语句:
①查询语句:select * from 表名 where 条件子句 group by 分组子句 having...order by 排序子句
例如:select * from userInfo order by id desc;
select * from userInfo group by name having count(*)>1
②插入语句:insert into 表名(字段列表) values(值列表)
例如:insert into userInfo(name,age) values('张三',20)
③更新语句:update 表名 set 字段名=值 where 条件子句
例如:update person set name = '张三' where id = 10
④删除语句:delete from 表名 where 条件子句
例如:delete from userInfo where id = 10
实例代码:
1.创建一个JavaBean
public class Student {
private int sid;
private String name;
private short age;
public Student() {
super();
}
public Student(int sid, String name, short age) {
super();
this.sid = sid;
this.name = name;
this.age = age;
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public short getAge() {
return age;
}
public void setAge(short age) {
this.age = age;
}
@Override
public String toString() {
return "Student [sid=" + sid + ", name=" + name + ", age=" + age + "]";
}
}
2.创建一个用于创建SQLite数据库的类DBOpenHelper .java
public class DBOpenHelper extends SQLiteOpenHelper{
private static final String DBNAME="data.db";
private static CursorFactory factory=null;
private static final int VERSION=1;
public DBOpenHelper(Context context) {
super(context, DBNAME, factory, VERSION);
}
//当数据库第一次被创建的时候,执行该方法
@Override
public void onCreate(SQLiteDatabase db) {
//sql语句中的字段名与Student.java的成员变量对应
String sql="create table t_student (sid integer primary key,"
+ "name varchar(20),age integer)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
3.创建一个操作数据库的类StudentDAO .java
public class StudentDAO {
private DBOpenHelper helper;
private SQLiteDatabase db;
public StudentDAO(Context context) {
// 创建DBOpenHelper的实例
helper = new DBOpenHelper(context);
}
public void add(Student student) {
/**
* Android使用getWritableDatabase()和getReadableDatabase()方法都可以获取一个用于操作数据库的SQLiteDatabase实例