热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android学习之sqlite基础

sqlite基础知识介绍1.sqlite数据库数据类型Integervarchar(10)floatdoublechar(10)text2.数据库语句2.1创建表语句createtable
sqlite基础知识介绍
1.sqlite数据库数据类型

Integer varchar(10) float double char(10) text

2.数据库语句

2.1创建表语句
create table person(-id Integer primary key, name varchar(10), age Integer not null)
2.2删除表语句
drop table person
2.3插入语句
Insert into person(_id, age) values(1,20)
2.4修改语句
update person set name="ls", age=20 where _id=10
2.5删除数据
delete from person where _id=1
2.6查询语句
select 字段名 from 表名 where 查询条件 group by 分组字段 having 筛选条件 order by 排序字段

select * from person;

select * from person where age between 10 and 20;


sqlite Demo应用

Constant.java:

package com.czhappy.sqlitedemo.utils;

/**
* Description:
* User: chenzheng
* Date: 2016/11/10 0010
* Time: 10:42
*/
public class Constant {

public static final String DATABASE_NAME = "info.db";
public static final int DATABASE_VERSION = 1;
public static final String TABLE_NAME = "person";
public static final String _ID = "_id";
public static final String NAME = "name";
public static final String AGE = "age";
}

MySqliteHelper.java:

package com.czhappy.sqlitedemo.utils;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
* Description:
* User: chenzheng
* Date: 2016/11/10 0010
* Time: 10:37
*/
public class MySqliteHelper extends SQLiteOpenHelper{

public MySqliteHelper(Context context){
super(context, Constant.DATABASE_NAME, null, Constant.DATABASE_VERSION);
}

public MySqliteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}

/**
* 数据库创建调用
* @param db
*/
@Override
public void onCreate(SQLiteDatabase db) {

String sql = "create table "+Constant.TABLE_NAME+"(" + Constant._ID
+" Integer primary key,"+Constant.NAME+" varchar(10),"
+Constant.AGE +" Integer)";
db.execSQL(sql);

}

/**
*
* 数据库版本更新回调函数
* @param db
* @param oldVersion
* @param newVersion
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

/**
* 数据库打开回调函数
* @param db
*/
@Override
public void onOpen(SQLiteDatabase db) {
super.onOpen(db);
}
}

DbManager.java:

package com.czhappy.sqlitedemo.utils;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;

/**
* Description:数据库操作工具类
* User: chenzheng
* Date: 2016/11/10 0010
* Time: 10:46
*/
public class DbManager {

public static MySqliteHelper helper;

public static MySqliteHelper getInstance(Context context){
if(helper==null){
helper = new MySqliteHelper(context);
}
return helper;
}

public static void execSql(SQLiteDatabase db, String sql){
if(db!=null){
if(sql!=null && !"".equals(sql)){
db.execSQL(sql);
}
}
}


}

MainActivity.java:

package com.czhappy.sqlitedemo;

import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;

import com.czhappy.sqlitedemo.utils.Constant;
import com.czhappy.sqlitedemo.utils.DbManager;
import com.czhappy.sqlitedemo.utils.MySqliteHelper;

public class MainActivity extends AppCompatActivity {

private MySqliteHelper helper;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
helper = DbManager.getInstance(this);
}

public void createDb(View view){
SQLiteDatabase db = helper.getWritableDatabase();
}

public void click(View view){

switch (view.getId()){
case R.id.insert_btn:
SQLiteDatabase db = helper.getWritableDatabase();
String sql = "insert into "+ Constant.TABLE_NAME+" values(1, 'lisi', 20)";
DbManager.execSql(db, sql);
db.close();
break;
case R.id.update_btn:
db = helper.getWritableDatabase();
sql = "update "+ Constant.TABLE_NAME+" set name='xiaoming' where _id=1";
DbManager.execSql(db, sql);
db.close();
break;
case R.id.delete_btn:
db = helper.getWritableDatabase();
sql = "delete from "+ Constant.TABLE_NAME+" where _id=1";
DbManager.execSql(db, sql);
db.close();
break;
case R.id.insertApi_btn:
db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(Constant._ID, 3);
values.put(Constant.NAME, "zhangsan");
values.put(Constant.AGE, 30);
long result = db.insert(Constant.TABLE_NAME, null, values);
if(result>0){
Toast.makeText(MainActivity.this, "插入数据成功", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this, "插入数据失败", Toast.LENGTH_SHORT).show();
}
db.close();
break;
case R.id.updateApi_btn:
db = helper.getWritableDatabase();
values = new ContentValues();
values.put(Constant.NAME, "qianliu");
int count = db.update(Constant.TABLE_NAME,values, Constant._ID+"=?", new String[]{"3"});
if(count>0){
Toast.makeText(MainActivity.this, "修改数据成功", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this, "修改数据失败", Toast.LENGTH_SHORT).show();
}
db.close();
break;
case R.id.deleteApi_btn:
db = helper.getWritableDatabase();
values = new ContentValues();
values.put(Constant._ID, 3);
int count2 = db.delete(Constant.TABLE_NAME, Constant._ID+"=?", new String[]{"3"});
if(count2>0){
Toast.makeText(MainActivity.this, "删除数据成功", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this, "删除数据失败", Toast.LENGTH_SHORT).show();
}
db.close();
break;
}
}
}



推荐阅读
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
author-avatar
咖啡色的午后_905
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有