资讯专栏INFORMATION COLUMN

Android开发工程师文集-1 小时学会SQLite

aristark / 832人阅读

摘要:前言大家好,给大家带来开发工程师文集小时学会的概述,希望你们喜欢内容什么是效率高,开源,小型,程序驱动,支持事务操作,无数据类型,可嵌入的关系型数据库独立的,跨平台的,代码量少,简单易用创建表语句删除表插入数据表名字段列表值列表修改数据更

前言

大家好,给大家带来Android开发工程师文集-1 小时学会SQLite的概述,希望你们喜欢

内容
  • 什么是Sqlite:
    效率高,开源,小型,程序驱动,支持事务操作,无数据类型,可嵌入的关系型数据库
    独立的,跨平台的,代码量少,简单易用

创建表语句

create table student(_id Integer primary key, name varchar(10), age Integer not null);

删除表

drop table student;

插入数据

Insert into 表名(字段列表) values (值列表);
insert into student(_id,age) values(1,17);
insert into student values(1,"vic",17);

修改数据

update student set name="vic",age=17 where _id=1;

更新数据

Update 表名 set 字段=值 列表 更新的条件

删除数据

delete from 表名 [删除条件];
delete from student where _id=1;

查询语句

select 字段名 from 表名称 [查询条件];
select 列名称 from 表名称 where 条件;
group by 分组的字段 having 筛选条件 order by 排序字段;
select * from student;
select _id from student;
select * from student where _id=1;
select * from student where _id=1 and age>17;
select * from student where age like "%1%";
select * from student where age>17 order by _id=1;
内容
  • 创建数据库
  • 实现数据库中的增删改查
要点

SQLiteOpenHelper,onCreate(),onUpgrade(),onOpen()



 
//MainActivity.java
public class MainActivity extends AppCompatActivity {
  private MySqliteHelper helper;
 @Override
 protected void onCreate(Bundle savedInstanceState){
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 helper = DbManger.getIntance(this);
 }
 public void createdb(View view){
  SQLiteDatabase db=helper.getWritableDatable();
 }
}
//创建一个类
//sqliteOpenHelper
//提供了onCreate()和onUpgrade()与onOpen()
public class MySqliteHelper extends SQLiteOpenHelper{
 public MySqliteHelper(Context context, String name, SQLitebase.CursorFactory factory, int version){
 super(context,name,factory,version);
 }
 public MySqliteHelper(Context context){
  super(context,Constant.DATABASE_NAME,null,Constant.DATABASE_VERSION);
}
 //数据库创建时回调
 @Override
 public void onCreate(SQLiteDatabase db){
  Log.i("tag","--onCreate--");
  //String sql="create table student(_id Integer primary key,name verchar(10),age Integer)";
  String sql = "create table "+Constant.TABLE_NAME+"("+Constant._ID+" Integer primary key,"+Constant.NAME+" varchar(10),"+Constant.AGE+" Integer)";
  db.execSQL(sql);//执行数据库语句
 }
 //数据库更新
 @Override
 public void onUpgrade(SQLiteDatabase db,int oldVersion, int newVersion){
  Log.i("tag","--onUpgrade--");
 }
 //数据库打开
 @Override
 public void onOpen(SQLiteDatabase db){
  super.onOpen(db);
  Log.i("tag","--onOpen--");
 }
}
//创建库表
public class Contant{
 public static final String DATABASE_NAME=“info.db”;//数据库名称
 public static final int DATABASE_VERSION=1;//数据库的版本号
 public static final String TABLE_NAME="student";//表名
  //用这里表示
 public static final String _ID="_id";
 public static final String _NAME="name";
 public static final String AGE="age";
public class DbManger{
 private static MySqliteHelper helper;
 public static MySqliteHelper getIntance(Context context){
   if(helper == null){
     helper=new MySqliteHelper(content);
   }
   return hepler;
 }
}


 
//MainActivity.java
public class MainActivity extends AppCompatActivity {
  private MySqliteHelper helper;
 @Override
 protected void onCreate(Bundle savedInstanceState){
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 helper = DbManger.getIntance(this);
 }
 public void createdb(View view){
  SQLiteDatabase db=helper.getWritableDatable();
 }
 public void click(View view){
  switch(view.getId()){
   case R.id.btn_insert:
    SQLiteDatabase db=helper.getWritableDatabase();
    String sql="insert into "+Constant.TABLE_NAME+" values(1,"vic",17)";
    DbManger.execSQL(db,sql);
    String sql2="insert into "+Constant.TABLE_NAME+" values(2,"vic",23)";
    DbManger.execSQL(db,sql2);
    db.close();
    break;
 }
}
public class DbManger{
 private static MySqliteHelper helper;
 public static MySqliteHelper getIntance(Context context){
   if(helper == null){
     helper=new MySqliteHelper(content);
   }
   return hepler;
 }
 public static void execSQL(SQLiteDatabase db,String sql){
  if(db!=null){
   if(sql!=null && !"".equals(sql)){
     db.execSQL(sql);
  }
 }
}


 
//MainActivity.java
public class MainActivity extends AppCompatActivity {
  private MySqliteHelper helper;
 @Override
 protected void onCreate(Bundle savedInstanceState){
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 helper = DbManger.getIntance(this);
 }
 public void createdb(View view){
  SQLiteDatabase db=helper.getWritableDatable();
 }
 public void click(View view){
  switch(view.getId()){
   case R.id.btn_insert:
    SQLiteDatabase db=helper.getWritableDatabase();
    String sql="insert into "+Constant.TABLE_NAME+" values(1,"vic",17)";
    DbManger.execSQL(db,sql);
    String sql2="insert into "+Constant.TABLE_NAME+" values(2,"vic",23)";
    DbManger.execSQL(db,sql2);
    db.close();
    break;
   case R.id.btn_update:
    db=helper.getWritableDatabase();
    String updateSql="update "+Constant.TABLE_NAME"+" set "+Contant.NAME+"="vic2" where "+Contant._ID+"=1";
    DbManger.execSQL(db,updateSql);
    db.close();
    break;
 }
}


 
//MainActivity.java
public class MainActivity extends AppCompatActivity {
  private MySqliteHelper helper;
 @Override
 protected void onCreate(Bundle savedInstanceState){
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 helper = DbManger.getIntance(this);
 }
 public void createdb(View view){
  SQLiteDatabase db=helper.getWritableDatable();
 }
 public void click(View view){
  switch(view.getId()){
   case R.id.btn_insert:
    SQLiteDatabase db=helper.getWritableDatabase();
    String sql="insert into "+Constant.TABLE_NAME+" values(1,"vic",17)";
    DbManger.execSQL(db,sql);
    String sql2="insert into "+Constant.TABLE_NAME+" values(2,"vic",23)";
    DbManger.execSQL(db,sql2);
    db.close();
    break;
   case R.id.btn_update:
    db=helper.getWritableDatabase();
    String updateSql="update "+Constant.TABLE_NAME"+" set "+Contant.NAME+"="vic2" where "+Contant._ID+"=1";
    DbManger.execSQL(db,updateSql);
    db.close();
    break;
   case R.id.btn_delete:
    db=helper.getWritableDatabase();
    String delSql="delete from "+Constant.TABLE_NAME+" where "+Constant._ID+"=2";
    DbManger.execSQL(db,delSql);
    db.close();
    break;
 }
}


 
//MainActivity.java
public class MainActivity extends AppCompatActivity {
  private MySqliteHelper helper;
 @Override
 protected void onCreate(Bundle savedInstanceState){
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 helper = DbManger.getIntance(this);
 }
 public void createdb(View view){
  SQLiteDatabase db=helper.getWritableDatable();
 }
 public void onClick(View view){
  switch(view.getId()){
   case R.id.btn_insertApi:
    SQLiteDatabase db=helper.getWritableDatabase();
    ContentValues values=new ContentValues();
    values.put(Constant._ID,3);
    values.put(Constant.NAME,"vic");
    values.put(Constant.AGE,17);
    long result=db.insert(Constant.TABLE_NAME,null,values);
    if(result>0){
     Toast.makeText(MainActivity.this,"插入数据成功!",Toast.LENGTH_LONG).show();
    }else{
      Toast.makeText(MainActivity.this,"插入数据失败!",Toast.LENGTH_LONG).show();
    }
    db.close();
    break;
   }
}

 public void click(View view){
  switch(view.getId()){
   case R.id.btn_insert:
    SQLiteDatabase db=helper.getWritableDatabase();
    String sql="insert into "+Constant.TABLE_NAME+" values(1,"vic",17)";
    DbManger.execSQL(db,sql);
    String sql2="insert into "+Constant.TABLE_NAME+" values(2,"vic",23)";
    DbManger.execSQL(db,sql2);
    db.close();
    break;
   case R.id.btn_update:
    db=helper.getWritableDatabase();
    String updateSql="update "+Constant.TABLE_NAME"+" set "+Contant.NAME+"="vic2" where "+Contant._ID+"=1";
    DbManger.execSQL(db,updateSql);
    db.close();
    break;
   case R.id.btn_delete:
    db=helper.getWritableDatabase();
    String delSql="delete from "+Constant.TABLE_NAME+" where "+Constant._ID+"=2";
    DbManger.execSQL(db,delSql);
    db.close();
    break;
 }
}
public void onClick(View view){
  switch(view.getId()){
   case R.id.btn_insertApi:
    SQLiteDatabase db=helper.getWritableDatabase();
    ContentValues values=new ContentValues();
    values.put(Constant._ID,3);
    values.put(Constant.NAME,"vic");
    values.put(Constant.AGE,17);
    long result=db.insert(Constant.TABLE_NAME,null,values);
    if(result>0){
     Toast.makeText(MainActivity.this,"插入数据成功!",Toast.LENGTH_LONG).show();
    }else{
      Toast.makeText(MainActivity.this,"插入数据失败!",Toast.LENGTH_LONG).show();
    }
    db.close();
    break;
   case R.id.btn_updateApi:
    //String table 修改的数据表的名称,ContentValues values,String whereClause 表示修改条件,String[] whereArgs
    db=helper.getWritableDatabase();
    //db.update(String table,ContentValues values,String whereClause,String[] whereArgs);
    ContentValues cv=new ContentValues();
    cv.put(Contant.NAME,"vic3");
    int count=db.update(Constant.TABLE_NAME,cv,Contant.TABLE_NAME,cv,Constant._ID+"=?",new String[]{"3"});
    if(count>0){
     Toast.makeText(MainActivity.this,"插入数据成功!",Toast.LENGTH_LONG).show();
    }else{
      Toast.makeText(MainActivity.this,"插入数据失败!",Toast.LENGTH_LONG).show();
    }
    db.close();
    break;
   }
}
public void onClick(View view){
  switch(view.getId()){
   case R.id.btn_insertApi:
    SQLiteDatabase db=helper.getWritableDatabase();
    ContentValues values=new ContentValues();
    values.put(Constant._ID,3);
    values.put(Constant.NAME,"vic");
    values.put(Constant.AGE,17);
    long result=db.insert(Constant.TABLE_NAME,null,values);
    if(result>0){
     Toast.makeText(MainActivity.this,"插入数据成功!",Toast.LENGTH_LONG).show();
    }else{
      Toast.makeText(MainActivity.this,"插入数据失败!",Toast.LENGTH_LONG).show();
    }
    db.close();
    break;
   case R.id.btn_updateApi:
    //String table 修改的数据表的名称,ContentValues values,String whereClause 表示修改条件,String[] whereArgs
    db=helper.getWritableDatabase();
    //db.update(String table,ContentValues values,String whereClause,String[] whereArgs);
    ContentValues cv=new ContentValues();
    cv.put(Contant.NAME,"vic3");
    int count=db.update(Constant.TABLE_NAME,cv,Contant.TABLE_NAME,cv,Constant._ID+"=?",new String[]{"3"});
    if(count>0){
     Toast.makeText(MainActivity.this,"插入数据成功!",Toast.LENGTH_LONG).show();
    }else{
      Toast.makeText(MainActivity.this,"插入数据失败!",Toast.LENGTH_LONG).show();
    }
    db.close();
    break;
  case R.id.btn_deleteApi:
  db=helper.getWritableDatabase();

  //int count2=db.delete(String table,StringwhereClause,String[] whereArgs);
  int count2=db.delete(Constant.TABLE_NAME,Constant._ID+"=?",new String[]{"1"});
  if(count2>0){
     Toast.makeText(MainActivity.this,"插入数据成功!",Toast.LENGTH_LONG).show();
    }else{
      Toast.makeText(MainActivity.this,"插入数据失败!",Toast.LENGTH_LONG).show();
    }
  db.close();
  break;
}
 public int delete(String table,String whereClause,String[] whereArgs){
  acquireReference();
  try{
   SQLiteStatement statement = new SQLiteStatement(this,"DELETE FROM "+table+(!TextUtils.isEmpty(whereClause) ? " WHERE "+whereClause : ""), whereArgs;
 try{
  return statement.executeUpdateDelete();
  }finally{
   statement.close();
  }
  }finally{
  releaseReference();
}
总结
  • 本文讲了Android开发工程师文集-1 小时学会SQLite,如果您还有更好地理解,欢迎沟通
  • 定位:分享 Android&Java知识点,有兴趣可以继续关注

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/2955.html

相关文章

  • Android开发程师文集-提示框,菜单,数据存储,组件篇

    摘要:提示框,菜单,数据存储,组件篇时间设置时间位置获取添加添加到中,复选单选消失通知栏,如接收短信属性手机状态栏的提示设置时间动态监听监听上下文菜单子菜单文件打开数据存储方式四种是一种比较轻型的数据存储,基于的键值对存储,存储一些简单的信息。提示框,菜单,数据存储,组件篇 Toast Toast.makeText(context, text, 时间).show(); setDuration(...

    techstay 评论0 收藏0
  • Android开发程师文集-相关控件的讲解,五大布局

    摘要:重要的属性都是从开始的索引列隐藏收缩拉伸显示在第二列这个表示一个空间占据两列如果觉得不错,那就点个赞吧总结本文讲了开发工程师文集相关控件的讲解,五大布局,如果您还有更好地理解,欢迎沟通定位分享知识点,有兴趣可以继续关注前言 大家好,给大家带来Android开发工程师文集-相关控件的讲解,五大布局的概述,希望你们喜欢 TextView控件 TextView控件有哪些属性: android:id...

    e10101 评论0 收藏0
  • Android开发程师文集-Activity生命周期,启动方式,Intent相关介绍,Activi

    摘要:如果觉得不错,那就点个赞吧总结本文讲了开发工程师文集生命周期,启动方式,相关介绍,详细讲解,如果您还有更好地理解,欢迎沟通定位分享知识点,有兴趣可以继续关注前言 大家好,给大家带来Android开发工程师文集-Activity生命周期,启动方式,Intent相关介绍,Activity详细讲解的概述,希望你们喜欢 Activity是什么 作为一个Activity,就是一个界面,当我们在手机上打...

    chanjarster 评论0 收藏0
  • 一个老鸟发的公司内部整理的 Android 学习路线图

    摘要:一个老鸟发的公司内部整理的学习路线图年月日阅读数发了一篇一个老鸟也发了一份他给公司内部小伙伴整理的路线图。另一份开发学习路线图。看完这本书后,小明对的历史结构代码规范等都有了一个大概的了解,并且,小明已经可以写出一些简单的了。一个老鸟发的公司内部整理的 Android 学习路线图 2017年09月12日 17:13:27 阅读数:20449   jixiaohua发了一篇一个老...

    miya 评论0 收藏0
  • Android核心技术Intent和数据存储篇

    摘要:数据的文件保存目录包名文件名。支持数据安全性高,空间大小有限与之相反。只能获取数据不能存储和修改,但能通过实现存储修改。在关系型数据库中,二维表中的列为属性,称为字段行为记录,如一对象属性中字段取值范围称为域。 女孩:上海站到了? 男孩:嗯呢?走向世界~ 女孩:Intent核心技术和数据存储技术? 男孩:对,今日就讲这个~ Intent是各个组件之间用来进行通信的,Intent的翻译为意...

    mingzhong 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<