`
百合不是茶
  • 浏览: 354800 次
社区版块
存档分类
最新评论

sqlite两种方式实现增删改查

阅读更多

sqlite有两种方式操作数据库:

 

     第一种就是像oracle一样直接写sql语句

    第二种就是借助工具,只写关键代码

 

下面将对这两种方式进行演示:



 

 

1,在xml中创建按钮,进行 查询和 固定的删除,修改,添加, 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginTop="130dp" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1"
        android:layout_marginLeft="18dp"
        android:layout_marginTop="44dp"
        android:onClick="optionuser"
        android:text="添加" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button1"
        android:layout_marginLeft="46dp"
        android:layout_toRightOf="@+id/button1"
        android:onClick="optionuser"
        android:text="删除" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button1"
        android:layout_below="@+id/button1"
        android:layout_marginTop="22dp"
        android:onClick="optionuser"
        android:text="修改" />

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button3"
        android:layout_alignBottom="@+id/button3"
        android:layout_alignLeft="@+id/button2"
        android:onClick="optionuser"
        android:text="查询" />

</RelativeLayout>

 

2,创建数据库的表的类

public class HelperDemo extends SQLiteOpenHelper{

	public HelperDemo(Context context, String name, CursorFactory factory,
			int version) {
	//参数一:上下文
		//参数二:数据库的名字
		//参数三:游标 没有游标就为null
		//参数四:数据库的版本号 版本号不能小于当前的版本号
		super(context, name, factory, version);
		// TODO Auto-generated constructor stub
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		//创建表
		String sql="create table user(_id integer primary key autoincrement,userphone txet,username text)";
		db.execSQL(sql);
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub
		
	}

}

 

分析:

创建数据库 需要继承SQLiteOpenHelper 并重写里面的onCreate()和onUpgrade()方法;

 

onCreate()方法;创建表   回调函数  在程序执行时需要操作该表时,如发现没有该表就会回调onCreate方法创建表;该方法只会执行一次

 

onUpgrade();当版本号更新时,会回调该函数

 

 

3,实现增删改查的操作(两种方式);

/**
 * 
 * @author Administrator 数据库的操作
 */
public class DemoDB extends Activity {
     //v1显示查询的结果
   //t1,t2,t3,t4分别是增删改查按钮
	private TextView v1;
	private Button t1;
	private Button t2;
	private Button t3;
	private Button t4;
	private HelperDemo demo; 获取数据库对象
	private SQLiteDatabase database;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main_db);
             //实例化数据库对象
		demo = new HelperDemo(this, "user_contacts", null, 1);
        //获得xml的组件
		v1 = (TextView) this.findViewById(R.id.textView1);
		t1 = (Button) this.findViewById(R.id.button1);
		t2 = (Button) this.findViewById(R.id.button2);
		t3 = (Button) this.findViewById(R.id.button3);
		t4 = (Button) this.findViewById(R.id.button4);

	}

	// 数据库的操作
	public void optionuser(View v) {
		switch (v.getId()) {
		case R.id.button1:// 添加数据
		database = demo.getWritableDatabase(); //获得写数据的对象
                  //判断是否可以写数据等操作
			if (database == null) {
			Toast.makeText(this, "不能添加数据", Toast.LENGTH_SHORT).show();
			} else {
				// 第一个方式
		     String sql = "insert into user values(null,'12345','长沙')";
				database.execSQL(sql);

				// 第二种方式
				// 参数一:表名
				// 参数二:null
				// 参数三:使用ContentValues赋值
				// ContentValues values = new ContentValues();
				// values.put("userphone", "123");
				// values.put("username", "value");
				//
				// database.insert("user", null, values);
				selectuser();
			}
			break;

		case R.id.button2:// 删除
			database = demo.getWritableDatabase();
			if (database == null) {
		Toast.makeText(this, "不能删除数据数据", Toast.LENGTH_SHORT).show();
			} else {

				// //第一种方式
				// String sql ="delete from user where _id=?";
				// String[] str= {"1"};
				// database.execSQL(sql, str);

				// 第二种方式
				// 参数一:表名
				// 参数二:条件
				// 参数三:条件的值
				String whereClause = "_id=?";
				String[] whereArgs = { "2" };
				database.delete("user", whereClause, whereArgs);
			}

			selectuser();
			break;
		case R.id.button3:// 修改
			database = demo.getWritableDatabase();
			if (database == null) {
		Toast.makeText(this, "不能修改数据", Toast.LENGTH_SHORT).show();
			} else {

				// 第一种方式

		// String sql="update user set username='武汉' where _id=6";
				// database.execSQL(sql);

				// 参数一:表名
				// 参数二:更新的值
				// 参数三:?的字段名
				// 参数四:?字段名的值
				ContentValues values = new ContentValues();
				values.put("username", "北京");
				String whereClause = "_id=?";
				String[] whereArgs = { "5" };
				database.update("user", values, whereClause, whereArgs);
			}

			selectuser();
			break;
		case R.id.button4:// 查询
			selectuser();

			break;
		}
	}

	// 查询
	public void selectuser() {
		SQLiteDatabase database2 = demo.getReadableDatabase();
//		// 第一种方式
//		String sql = "select * from user order by _id desc";
//		Cursor c = database2.rawQuery(sql, null);
//		StringBuffer buffer = new StringBuffer();
//		while (c.moveToNext()) {
//			int id = c.getInt(c.getColumnIndex("_id"));
//			String phone = c.getString(c.getColumnIndex("userphone"));
//			String name = c.getString(c.getColumnIndex("username"));
//			buffer.append(id + "\t姓名:\t" + name + "<><>电话:\t" + phone + "\r\n");
//		}
//		v1.setText(buffer);
		
		//第二种方式
		//参数一:表名
		//查询数据会返回一个游标对象,遍历游标对象就得到值
		Cursor c=database2.query("user", null, null, null, null, null, null);
		StringBuffer buffer = new StringBuffer();
		while (c.moveToNext()) {
			int id = c.getInt(c.getColumnIndex("_id"));
			String phone = c.getString(c.getColumnIndex("userphone"));
			String name = c.getString(c.getColumnIndex("username"));
		buffer.append(id + "\t姓名:\t" + name + "<><>电话:\t" + phone + "\r\n");
		}
		v1.setText(buffer);
	}

}

 

 

分析:

增删改;需要判断数据库的表是否可以进行写的操作;

database = demo.getWritableDatabase();

if (database == null) {

Toast.makeText(this, "不能修改数据", Toast.LENGTH_SHORT).show();

}

 

 

 

 

 

 

  • 大小: 93.7 KB
0
0
分享到:
评论

相关推荐

    android之sqlite实现增删改查.docx

    根据提供的文档信息,我们可以深入探讨如何在Android应用中利用SQLite数据库来实现基本的数据增删改查(CRUD:Create, Read, Update, Delete)操作。 ### 标题:Android之SQLite实现增删改查 #### 知识点一:...

    sqlite增删改查

    本教程将详细介绍如何在Android中利用SQLite进行数据库的增删改查操作,以及介绍两种不同的实现方法。 ### 一、SQLite数据库基本概念 SQLite数据库由三部分组成:SQLite引擎、SQL语句和SQLite数据库文件。在...

    关于Express框架连接MySQL数据库, 实现增删改查, 登录功能

    封装了一个mysqlUtils工具包, 专门用于创建数据库连接(其中包含两种连接方式, 简单的createConnection方式和createPool创建连接池的方式), 同时对数据库实现增删改查, 登录等功能的SQL语句进行处理, 并且对返回结果...

    SQLite基本操作创建增删改查

    "SQLiteDemo"可能是一个示例项目或库,它可能提供了一种更直观的方式来执行这些SQLite操作。在实际开发中,我们通常会使用编程语言(如Python、Java、C#等)的SQLite库,通过编写代码来与数据库交互,而不是直接在...

    Android安卓期末大作业 新闻app 实现注册登录增删改查功能

    本项目是一个针对Android平台的新闻应用,它涵盖了Android开发中的基础功能和核心知识点,包括用户注册、登录以及新闻数据的增删改查操作。这个期末大作业旨在帮助学生掌握Android应用开发的基本技能,提升实际项目...

    ASP.NET增删改查例子(作业)

    这个"ASP.NET增删改查例子(作业)"是一个针对初学者的教程,旨在教授如何在ASP.NET环境中实现基本的数据操作功能,即创建(Create)、读取(Read)、更新(Update)和删除(Delete),简称CRUD。 在ASP.NET中,CRUD...

    Test多表联合增删改查,struts两个JAVABEAN

    综上所述,"Test多表联合增删改查,struts两个JAVABEAN"这个主题涵盖了Struts框架的使用、JavaBean的设计、SSH框架的集成、Android开发的基础、数据库管理和设计模式的应用等多个IT领域的重要知识点。通过深入学习和...

    C#宿舍管理系统-数据库增删改查

    本文将深入探讨C#语言与数据库操作,特别是增删改查(CRUD)操作,以及如何结合SQLite和SQL Server数据库实现这些功能。 首先,C#是一种面向对象的编程语言,广泛应用于Windows平台上的应用程序开发。在本系统中,...

    C#调用sqlite增删改查样例(含数据库)

    本示例将详细介绍如何使用C#调用SQLite进行增删改查操作,并包含了一个实际的项目工程,供开发者参考学习。 首先,SQLite数据库引擎(sqlite3.exe)是一个独立的可执行文件,无需安装,可以直接在项目中引用。在C#...

    SQLite的增删改查

    在"SQLite的增删改查"这一主题中,我们将探讨如何在SQLite数据库中执行基本的操作,包括创建表、插入数据(增加)、查询数据、更新数据(修改)以及删除数据。 1. 创建表:在SQLite中,我们首先需要定义数据表结构...

    androidSqlite增删改查

    总结来说,SQLite在Android中的应用主要涉及创建数据库和表、执行SQL语句进行数据的增删改查操作。了解并熟练掌握这些基本操作对于Android开发者至关重要,因为本地数据存储通常是应用程序不可或缺的部分。通过合理...

    Android 数据库增删改查

    本示例将详细介绍如何在Android中进行SQLite数据库的增删改查操作。 1. **创建数据库和表** 在Android中,我们通常通过继承`SQLiteOpenHelper`类来创建和管理数据库。`SQLiteOpenHelper`提供了`onCreate()`和`...

    简易留言板基本的增删改查php

    【简易留言板基本的增删改查PHP】是一个基础的PHP应用程序,主要功能是实现一个简单的用户交互系统,允许用户在网站上发布留言、编辑、删除和查看留言。在这个系统中,PHP作为服务器端脚本语言,负责处理用户请求并...

    android sqllite数据库的增删改查、listview优化

    SQLite支持SQL语法,使得我们能够方便地进行数据的增删改查操作。在这个主题中,我们将深入探讨如何在Android应用中使用SQLite数据库,并将数据展示在ListView上,同时优化ListView的性能。 首先,我们需要创建一个...

    PDO的增删改查

    PDO提供了两种错误模式:异常和错误代码。在上述示例中,我们使用了异常模式。另一种是设置错误模式为`PDO::ERRMODE_WARNING`,会抛出警告而不是异常。 8. **游标** PDOStatement对象可以配置不同的游标类型,如...

    Android简单通信录

    - Intent有两种类型:显式Intent和隐式Intent。显式Intent通过指定组件的完整类名来启动特定的组件,而隐式Intent则根据指定的动作、数据和类别来寻找能够处理它的组件。 2. **创建Activity**: - 在实现通信录...

    C#源代码-使用XML实现增删改查.zip

    在本文中,我们将深入探讨如何使用C#编程语言与XML(可扩展标记语言)结合,实现数据的增、删、改、查操作。C#是一种广泛应用于开发Windows应用程序、Web服务以及游戏等领域的面向对象的编程语言,而XML则是一种用于...

    Android SQLite数据库增删改查操作的使用详解

    本文将详细介绍如何在Android中使用SQLite进行增删改查操作,并涉及数据库版本管理。 首先,SQLite数据库支持五种基本数据类型:NULL、INTEGER、REAL、TEXT和BLOB。尽管它的数据类型有限,但在实际使用中,SQLite...

    Android SQLite 增、删、查、改操作源码-IT计算机-毕业设计.zip

    这个压缩包中的源码提供了一个基础的Android应用示例,展示了如何进行SQLite数据库的增、删、查、改(CRUD)操作。以下是关于这个主题的详细讲解。 首先,要使用SQLite,我们需要在Android应用中创建一个...

    用Qt制作的登录系统,使用Avl树实现增删改查,UI界面仅有登录系统.zip

    本文将深入探讨一个使用Qt框架构建的登录系统,该系统采用Avl树作为数据结构进行增删改查操作,是计算机专业学生理想的毕业设计案例。Qt是一个跨平台的C++图形用户界面应用程序开发框架,它提供了一系列工具和库,使...

Global site tag (gtag.js) - Google Analytics