设为首页 收藏本站
查看: 1070|回复: 0

[经验分享] Android连接SQLite数据库的简单例子

[复制链接]

尚未签到

发表于 2016-11-30 12:06:00 | 显示全部楼层 |阅读模式
  背景:
  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包上点鼠标右键,新建一个类
DSC0000.jpg

  类的名称是DBHelper,继承自“android.database.sqlite.SQLiteOpenHelper”,基类的名称可以点按钮进行查找
  2 用户界面
DSC0001.jpg

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-307739-1-1.html 上篇帖子: iOS学习笔记(十五)——数据库操作(SQLite) 下篇帖子: (转)SQLite入门与分析(二)---设计与概念
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表