SQLlite实现增删查改

activity_main.xml文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <LinearLayout
        android:layout_width="290dp"
        android:layout_height="wrap_content"
        android:padding="10dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="手机号:"
            android:textSize="18sp" />

        <EditText
            android:id="@+id/ID"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="290dp"
        android:layout_height="wrap_content"
        android:padding="10dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="姓名:"
            android:textSize="18dp" />

        <EditText
            android:id="@+id/Name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    </LinearLayout>

    <TextView
        android:id="@+id/StudentList"
        android:layout_width="290dp"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="显示数据"
        android:padding="10dp"/>

</LinearLayout>

main.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/CreateDataBase"
        android:title="创建数据库">
    </item>
    <item
        android:id="@+id/CreateTable"
        android:title="创建表">
    </item>
    <item
        android:id="@+id/DropTable"
        android:title="删除表">
    </item>
    <item
        android:id="@+id/InsertData"
        android:title="插入数据">
    </item>
    <item
        android:id="@+id/ReadData"
        android:title="读取数据">
    </item>

</menu>

MainActivity.java

package com.zrdm.sqlitecrud;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewConfiguration;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

    // 变量***********************************/
    private MyDataBase myDataBase = null;
    private String strSql = null;
    private EditText ID = null;
    private EditText Name = null;
    private TextView studentList = null;

    // 函数***********************************/

    // 创建
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        makeActionOverflowMenuShown();
        ID = (EditText) findViewById(R.id.ID);
        Name = (EditText) findViewById(R.id.Name);
        studentList = (TextView) findViewById(R.id.StudentList);
    }

    // 创建菜单
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
/*
    // 创建表
    public void CreateTable(View v) {
        strSql = "Create table student(" + "ID nvarchar(20) not null,"
                + "Name nvarchar(40) not null," + "primary key(ID)" + " )";
        if (myDataBase == null) {
            myDataBase = new MyDataBase(this);
        }
        if (myDataBase.ExecSql(strSql)) {
            Toast.makeText(getApplicationContext(), "创建表成功!", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(getApplicationContext(), "创建表失败!", Toast.LENGTH_SHORT).show();
        }

    }

    // 删除表
    public void DropTable(View v) {
        strSql = "Drop table student";
        if (myDataBase == null) {
            myDataBase = new MyDataBase(this);
        }
        if (myDataBase.ExecSql(strSql)) {
            Toast.makeText(getApplicationContext(), "删除表成功!", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(getApplicationContext(), "删除表失败!", Toast.LENGTH_SHORT).show();
        }

    }

    // 插入数据
    public void InsertData(View v) {
        String strId = ID.getText().toString();
        String strName = Name.getText().toString();

        if (strId.equals("") || strName.equals("")) {
            Toast.makeText(getApplicationContext(), "学号或姓名不能为空!", Toast.LENGTH_SHORT).show();
        } else {
            strSql = "insert into student values (" + "‘" + strId + "‘," + "‘"
                    + strName + "‘)";
            if (myDataBase == null) {
                myDataBase = new MyDataBase(this);
            }

            if (myDataBase.ExecSql(strSql)) {
                Toast.makeText(getApplicationContext(), "插入数据成功!", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(getApplicationContext(), "插入数据失败!", Toast.LENGTH_SHORT).show();
            }
        }
    }

    // 读取数据
    public void ReadData(View v) {
        if (myDataBase == null) {
            Toast.makeText(getApplicationContext(), "数据库不存在!", Toast.LENGTH_SHORT).show();
        } else {
            SQLiteDatabase db = myDataBase.getReadableDatabase();
            strSql = "select * from student";
            Cursor cursor = db.rawQuery(strSql, null);
            StringBuffer sb = new StringBuffer();
            while (cursor.moveToNext()) {
                Student s = new Student(cursor.getString(0),
                        cursor.getString(1));
                sb.append("学号:" + s.getID() + "     姓名:" + s.getName() + "\n");
            }
            studentList.setText(sb);
        }
    }(注释区的代码是供按钮使用的因为我把按钮都删掉了所以这一段被我注释掉了,如果想添加按钮的话只需要在布局文件里添加按钮然后在这里吧注释符号去掉去壳)*/

    // 菜单被选中
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        int id = item.getItemId();
        if (id == R.id.CreateDataBase) {
            // 创建数据库
            if (myDataBase == null) {
                myDataBase = new MyDataBase(this);
                Toast.makeText(getApplicationContext(), "创建数据库成功!", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(getApplicationContext(), "数据库已存在!", Toast.LENGTH_SHORT).show();
            }
        } else if (id == R.id.CreateTable) {
            // 创建表
            strSql = "Create table student(" + "ID nvarchar(20) not null,"
                    + "Name nvarchar(40) not null," + "primary key(ID)" + " )";
            if (myDataBase == null) {
                myDataBase = new MyDataBase(this);
            }
            if (myDataBase.ExecSql(strSql)) {
                Toast.makeText(getApplicationContext(), "创建表成功!",Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(getApplicationContext(), "创建表失败!", Toast.LENGTH_SHORT).show();
            }
        } else if (id == R.id.DropTable) {
            // 删除表
            strSql = "Drop table student";
            if (myDataBase == null) {
                myDataBase = new MyDataBase(this);
            }
            if (myDataBase.ExecSql(strSql)) {
                Toast.makeText(getApplicationContext(), "删除表成功!", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(getApplicationContext(), "删除表失败!", Toast.LENGTH_SHORT).show();
            }
        } else if (id == R.id.InsertData) {
            // 插入数据
            String strId = ID.getText().toString();
            String strName = Name.getText().toString();

            if (strId.equals("") || strName.equals("")) {
                Toast.makeText(getApplicationContext(), "学号或姓名不能为空!", Toast.LENGTH_SHORT).show();
            } else {
                strSql = "insert into student values (" + "‘" + strId + "‘,"
                        + "‘" + strName + "‘)";
                if (myDataBase == null) {
                    myDataBase = new MyDataBase(this);
                }

                if (myDataBase.ExecSql(strSql)) {
                    Toast.makeText(getApplicationContext(), "插入数据成功!", Toast.LENGTH_SHORT)
                            .show();
                } else {
                    Toast.makeText(getApplicationContext(), "插入数据失败!", Toast.LENGTH_SHORT)
                            .show();
                }
            }
        } else if (id == R.id.ReadData) {
            // 读取数据
            if (myDataBase == null) {
                Toast.makeText(getApplicationContext(), "数据库不存在!", Toast.LENGTH_SHORT).show();
            } else {
                SQLiteDatabase db = myDataBase.getReadableDatabase();
                strSql = "select * from student";
                Cursor cursor = db.rawQuery(strSql, null);
                StringBuffer sb = new StringBuffer();
                while (cursor.moveToNext()) {
                    Student s = new Student(cursor.getString(0),
                            cursor.getString(1));
                    sb.append( " 姓名:" + s.getName() + "手机号:" + s.getID() +"\n");

                }
                studentList.setText(sb);
            }
        }

        return super.onOptionsItemSelected(item);
    }

    // 显示右上角三个点菜单
    private void makeActionOverflowMenuShown() {
        try {
            ViewConfiguration config = ViewConfiguration.get(this);
            Field menuKeyField = ViewConfiguration.class
                    .getDeclaredField("sHasPermanentMenuKey");
            if (menuKeyField != null) {
                menuKeyField.setAccessible(true);
                menuKeyField.setBoolean(config, false);
            }
        } catch (Exception e) {
            // TODO: handle exception
        }
    }

}

MyDataBase.java

package com.zrdm.sqlitecrud;

import java.util.concurrent.ExecutionException;

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

public class MyDataBase extends SQLiteOpenHelper{

    //变量*********************************************/
    private static String strDataBaseName = "Student.db";
    private static int intVersion = 1;
    private SQLiteDatabase db = null;

    //函数********************************************/
    public MyDataBase(Context context){
        super(context, strDataBaseName, null, intVersion);
        db = getWritableDatabase();
    }
    //构造
    public MyDataBase(Context context, String name, CursorFactory factory,
            int version, DatabaseErrorHandler errorHandler) {
        super(context, name, factory, version, errorHandler);
        // TODO Auto-generated constructor stub
    }

    //构造
    public MyDataBase(Context context, String name, CursorFactory factory,
            int version) {
        super(context, name, factory, version);
        // TODO Auto-generated constructor stub
    }

    //执行SQL语句,建议语句类型 create 、delete 、 update 、insert
    public boolean ExecSql(String strSql){
        try{
            db.execSQL(strSql);
            return true;
        }catch(Exception e){
            return false;
        }
    }    

    //创建
    @Override
    public void onCreate(SQLiteDatabase arg0) {
        // TODO Auto-generated method stub

    }

    //版本升级
    @Override
    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
        // TODO Auto-generated method stub

    }

}

Student.java

package com.zrdm.sqlitecrud;

import java.util.concurrent.ExecutionException;

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

public class MyDataBase extends SQLiteOpenHelper{

    //变量*********************************************/
    private static String strDataBaseName = "Student.db";
    private static int intVersion = 1;
    private SQLiteDatabase db = null;

    //函数********************************************/
    public MyDataBase(Context context){
        super(context, strDataBaseName, null, intVersion);
        db = getWritableDatabase();
    }
    //构造
    public MyDataBase(Context context, String name, CursorFactory factory,
            int version, DatabaseErrorHandler errorHandler) {
        super(context, name, factory, version, errorHandler);
        // TODO Auto-generated constructor stub
    }

    //构造
    public MyDataBase(Context context, String name, CursorFactory factory,
            int version) {
        super(context, name, factory, version);
        // TODO Auto-generated constructor stub
    }

    //执行SQL语句,建议语句类型 create 、delete 、 update 、insert
    public boolean ExecSql(String strSql){
        try{
            db.execSQL(strSql);
            return true;
        }catch(Exception e){
            return false;
        }
    }    

    //创建
    @Override
    public void onCreate(SQLiteDatabase arg0) {
        // TODO Auto-generated method stub

    }

    //版本升级
    @Override
    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
        // TODO Auto-generated method stub

    }

}

点击创建数据库->创建表->插入数据。如果创建表的时候失败就点击删除表然后点击创建表就可以.

插入数据成功:

读取数据成功:

时间: 2024-08-06 17:29:19

SQLlite实现增删查改的相关文章

php mysql增删查改

php mysql增删查改代码段 $conn=mysql_connect('localhost','root','root');  //连接数据库代码 mysql_query("set names utf8");  //传输编码 mysql_query('sql'$conn); //查找名为sql的数据库 admin为表名: 查找数据代码段: $sql="select * from admin ";  //查询表: $sql="select  * from

c++中的顺序表写法,主要实现(增删查改,构造函数,运算符重载)

本文的内容主要是,利用c++写出顺序表,并对写出的代码进行测试, 主要实现的功能:实现对顺序表的增删查改, 要写的函数:构造函数,赋值运算符重载,析构函数.在编写代码过程中应注意到深浅拷贝问题. 下面是顺序表的类函数: #pragma once #include<iostream> using namespace std; typedef int DataType; class SeqList { public: SeqList(); SeqList(DataType *array, size

mysql基础知识之增删查改使用介绍

 mysql基础知识之增删查改使用介绍 本文主要介绍mysql常用的SELECT.INSERT.UPDATE.DELETE语句的使用,数据库的安装这里不做介绍,并且事先已经准备好相关数据. 本文中使用的student表中的数据如下: mysql> SELECT * FROM student; 一.SELECT语句的使用 1.单表查询 语法格式: SELECT culom1,culom2,culom3 FROM TABLE_NAME; 可以改变字段显示顺序 2.WHERE子句查询 语法格式: SE

nodejs连接mysql并进行简单的增删查改

最近在入门nodejs,正好学习到了如何使用nodejs进行数据库的连接,觉得比较重要,便写一下随笔,简单地记录一下 使用在安装好node之后,我们可以使用npm命令,在项目的根目录,安装nodejs中的mysql模块 npm install mysql 在连接数据库之前,要先引入nodejs连接处理mysql的模块 var mysql = require('mysql'); 类似php连接mysql的方式,编写连接代码 //使用nodejs处理mysql的模块,使用创建连接方法,创建与mysq

EF实现增删查改功能

In the previous tutorial you created an MVC application that stores and displays data using the Entity Framework and SQL Server LocalDB. In this tutorial you'll review and customize the CRUD (create, read, update, delete) code that the MVC scaffoldin

在MVC程序中,使用泛型仓储模式和工作单元实现增删查改

在这片文章中,我将自己动手为所有的实体:写一个泛型仓储类,还有一个工作单元. 工作单元的职责就是:为每一个实体,创建仓储实例.仓储(仓库)的职责:增删查改的功能实现. 我们将会在控制器中,创建工作单元类(UnitOfWork)的实例,然后根据实体,创建仓储实例,再就是使用仓储里面的方法,做操作了. 下面的图中,解释了,仓储和EF 数据上文的关系,在这个图里面,MVC控制器和仓储之间的交互,是通过工作单元来进行的,而不是直接和EF接触. 那么你可能就要问了,为什么要使用工作单元??? 工作单元,就

asp.net MVC最简单的增删查改!(详)

折腾了两天搞出来,但原理性的东西还不是很懂,废话不多说上图上代码 然后右键models,新建一个数据模型 注意我添加命名为lianxi 添加后如上 接下来在controllers添加控制器还有在Views中添加视图 注意控制器lianxi和视图的名字要一致,然后视图我是添加了3个分别是Index,insert,Modify,在控制器里分别有三个对应的函数 每当用URL访问视图时,他就调用了controllers对应的方法,例如 jiaEntities 就是建立模式时那个数据链接的名字      

Dom的增删查改以及常用事件

dom的增删查改 // 查 var _input = document.getElementById('_input'); var _div = document.getElementsByClassName('_div'); var _div2 = document.getElementsByTagName('div'); var _radio = document.getElementById('_radio'); // 改 input.value = '随便'; div.style.hei

基于MVC实现增删查改

1.首先要理解MVC的架构.新建一个web项目取名叫Service. 2.建立eneity(实体包),tools(连接数据库),DAO(借助result的代码实现增删查改)servlet(实现跳转). 3.在建立实体时一定要和数据库中的字段名一致,否则在运行时会出错.连接数据库时一定要注意数据库名和密码. 4.在DAO层中实现增删查改的语句,并测试,代码如下: public class userDAO {  public List getAllUser(){//查询 String SQL="se