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结果显示

      

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM