Android连接SQLite数据库的简单例子
背景:
SQLite是一个非常流行的嵌入式数据库,它提供了一个清爽的 SQL 接口,相当小的内存占用和高速的响应,更 Happy 的是他还是免费的,大家都可以尽情的使用,很多牛叉的公司(诸如 Adobe,Apple,Google,Sun,Symbian ),开源项目( Mozilla,PHP,Python )都在产品中装配 SQLite.
Android 中, SQLite 是被集成于 Android runtime ,每个 Android 应用程序都可以欢快的使用 SQLite 数据库,如果你熟悉 JDBC ,那么这个过程就更安逸了。
SQLite3 特征
和传统关系数据库比较 有的:
Sql 语句:SELECT(查询), INSERT(添加数据), UPDATE(修改数据), CREATE(创建表), DROP(删除表)
数据类型: 不区分大小写,TEXT( 文本), NUMERIC( 数值), INTEGER( 整型), REAL(小数), NONE(无类型)
没有的: FOREIGN KEY(外键约束), RIGHT OUTER JOIN, FULL OUTER JOIN, ALTER TABLE(修改表中的列)
程序:
一、启动eclipse和android虚拟机,用adb shell命令行新建目录、SQLite数据库和表
1 编写runadb.bat
path D:\程序设计\安卓\eclipse 3.7\android-sdks\platform-tools
adb shell (也可在DOS环境中直接输入);
2 新建文件夹
在data/data目录下创建cqvie.edu.cn(项目中包的名字),
mkdir cqvie.edu.cn
cd cqvie.edu.cn 在此目录下创建文件夹databases
mkdir databases
cd databases
3 创建数据库
sqlite3 test.db
create table 表名(“no” integer,”name” text); //创建表
select * from sqlite_master where type=”table” and name=”表名”; //查询表结构
insert into 表名 values(1,”张三”);
.explain ON
Select * from 表名; //查询
二、编写android程序实现表记录的添加与查
1 建立专门用于数据库操作的DBHelper类
在cqvie.edu.cn包上点鼠标右键,新建一个类
类的名称是DBHelper,继承自“android.database.sqlite.SQLiteOpenHelper”,基类的名称可以点按钮进行查找
2 用户界面
3 代码编写实现添加查询功能
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnAdd=(Button) findViewById(R.id.btnAdd);
Button btnQuery=(Button) findViewById(R.id.btnQuery);
btnAdd.setOnClickListener(this);
btnQuery.setOnClickListener(this);
}
public void onClick(View arg0) {
// TODO Auto-generated method stub
DBHelper helper=new DBHelper(this, "test.db", null, 1);
SQLiteDatabase db=helper.getWritableDatabase();
Button btn=(Button)arg0;
int id=btn.getId();
if(id==R.id.btnAdd){
String sql="insert into count values(2222)";
db.execSQL(sql);
}
else if(id==R.id.btnQuery){
Cursor cursor=db.query("count", new String[]{"*"}, "name=?", new String[]{"2222"}, null, null, null);
String s="查询结果\n";
while(cursor.moveToNext()){
int no=cursor.getInt(cursor.getColumnIndex("no"));
String name=cursor.getString(cursor.getColumnIndex("name"));
s+=no+","+name+"\n";
}
EditText Text=(EditText) findViewById(R.id.Text);
Text.setText(s);
}
}
}
在进行数据库写测试之前,一定要把数据库文件test.db的写权限打开,不然会出错
在data/data/cqvie.edu.cn/databases目录下写chmod 777 test.db
当标示符为”#”时,可直接写这句chmod 777 test.db
当标示符为”sqlite>”时,要先退出.exit,再写这句chmod 777 test.db
4结果显示