初始化升级数据库,数据的新增和查询

package com.example.wang.testapp3;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class TestActivity2 extends AppCompatActivity {

    EditText et_id,et_name,et_sex,et_age;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test2);
        et_id=(EditText)findViewById(R.id.et_id);

        et_name=(EditText)findViewById(R.id.et_name);

        et_sex=(EditText)findViewById(R.id.et_sex);

        et_age=(EditText)findViewById(R.id.et_age);
    }

    //初始化数据库
    public void bt1_OnClick(View v)
    {
        //使用工具类得到数据库对象
        MyDBHelper myDBHelper=new MyDBHelper("test.db",1);

        //得到连接
        SQLiteDatabase sd = myDBHelper.getReadableDatabase();

        Toast.makeText(TestActivity2.this, "连接数据库成功", Toast.LENGTH_SHORT).show();

        //关闭连接
        sd.close();
    }

    //初始化数据库
    public void bt2_OnClick(View v)
    {
        //使用工具类得到数据库对象
        MyDBHelper myDBHelper=new MyDBHelper("test.db",2);

        //得到连接
        SQLiteDatabase sd = myDBHelper.getReadableDatabase();

        Toast.makeText(TestActivity2.this, "连接数据库成功", Toast.LENGTH_SHORT).show();

        //关闭连接
        sd.close();
    }

    //插入新数据
    public  void  bt3_OnClick(View v)
    {
        //1-连接数据库,得到数据库连接对象

        SQLiteDatabase sd = new MyDBHelper("test.db",2).getReadableDatabase();
        //2-准备数据

        ContentValues cv=new ContentValues();

        cv.put("name",et_name.getText().toString());

        cv.put("sex",et_sex.getText().toString());

        cv.put("age",et_age.getText().toString());

        //3-调用insert(),插入数据
        Long l=sd.insert("t_user", null, cv);

        Toast.makeText(TestActivity2.this, "插入数据的主键="+l, Toast.LENGTH_SHORT).show();

        //4-关闭连接
        sd.close();
    }

    //数据查询
    public  void  bt4_OnClick(View v)
    {

        //1.得到连接
        SQLiteDatabase sd = new MyDBHelper("test.db",2).getReadableDatabase();

        //2.全表查询
        Cursor c=sd.query("t_user", null, null, null, null, null, null);

        //3.遍历结果集
        while (c.moveToNext())
        {
            //读取数据
            String str="_id="+c.getLong(0)+" name="+c.getString(1)+
                    " sex="+c.getString(2)+" age="+c.getInt(3);

            Log.e("TAG",str);

        }

        c.close();

        //4.关闭连接
        sd.close();

    }

    //实现SQLiteOpenHelper的内部类
    class MyDBHelper extends SQLiteOpenHelper
    {
        //构造方法
        public  MyDBHelper(String dbname,int ver)
        {
            //显示调用父类的构造方法
            //必须在第一行
            super(TestActivity2.this,dbname,null,ver);
        }
        //创建和初始化数据库
        @Override
        public void onCreate(SQLiteDatabase db) {

            //1-执行创建数据库的语句

            String sql="CREATE TABLE t_user" + " (\"_id\"  INTEGER AUTOINCREMENT NOT NULL," +
                    "\"name\"  VARCHAR(20) NOT NULL," +
                    "\"sex\"  CHAR(1)," +
                    "\"age\"  INTEGER," +
                    "PRIMARY KEY (\"_id\"))";
            db.execSQL(sql);

            Log.e("TAG","表创建成功");
            //2-执行初始化数据的语句,insert语句
            ContentValues cv = new ContentValues();

            cv.put("name","张三");
            cv.put("sex","男");
            cv.put("age", 20);

            //执行插入
            Long l=db.insert("t_user", null, cv);
            Log.e("TAG", "初始化数据=" + l);
        }

        //升级数据库
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

            //修改数据
            if(newVersion==2)
            {
                ContentValues cv=new ContentValues();

                cv.put("name","李四");

                String sql="update t_user set name=‘李四‘ where _id=1";

                //调用数据库连接类的方法

                String[] str={"1","18"};
                int i=db.update("t_user", cv, "_id=? and age>?",str);

                Log.e("TAG","升级数据 数据条数="+i);
            }

        }

    }
}

java

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.wang.testapp3.TestActivity2"
    android:orientation="vertical">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="初始化数据库"
        android:onClick="bt1_OnClick"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="升级数据库"
        android:onClick="bt2_OnClick"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:hint="id"
            android:id="@+id/et_id"/>
        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:hint="name"
            android:id="@+id/et_name"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:hint="sex"
            android:id="@+id/et_sex"/>
        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:hint="age"
            android:id="@+id/et_age"/>
    </LinearLayout>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="新增数据"
        android:onClick="bt3_OnClick"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="数据查询"
        android:onClick="bt4_OnClick"/>

</LinearLayout>

xml

时间: 2024-08-02 06:59:11

初始化升级数据库,数据的新增和查询的相关文章

MongoDB新增及查询数据(一)

新增操作    insert函数会添加一个文档到集合里面.例如我们要登记一个人的信息,首先我们在shell力创建一个局部变量person,其记录了人的姓名和性别,我们通过db.persons.insert(person)想集合persons中插入一条记录,通过db.persons.findOne()查询刚才插入的记录.                                                                              图 7.新增操作插入的时

19 MySQL概念 数据库 数据表 数据类型 增加删除修改查询 WHERE Order By Limit

数据库管理系统DBMS 数据库中相关概念 数据库 数据表 记录 字段 数据 登录和退出MySQL客户端 查询自己的MySQL服务器有几个数据库 二.退出MySQL客户端的命令 修改root用户的密码 在MySQL客户端来修改密码(当前账号的密码) 数据库操作 创建数据库 显示所有数据库 删除数据库 选择数据库 更改数据库默认字符集 数据表操作 显示当前数据库中的所有表 创建数据表 显示表的创建 列的常用属性 修改数据表 删除数据表 显示表结构 MySQL数据类型 整型 浮点型 字符型 文本型 日

jmeter JDBC Request (查询数据库获取数据库数据) 的使用

JDBC Request 这个Sampler可以向数据库发送一个jdbc请求(sql语句),并获取返回的数据库数据进行操作.它经常需要和JDBC Connection Configuration配置原件(配置数据库连接的相关属性,如连接名.密码等)一起使用. 一.准备工作 1.本文使用的是mysql数据库进行测试,数据库的用户名为root(你自己的用户名),用户名密码为*********(你自己的密码) 2.数据库中有表:test,表的数据结构如下: 表中数据如下: select * from

转jmeter 性能测试 JDBC Request (查询数据库获取数据库数据) 的使用

JDBC Request 这个Sampler可以向数据库发送一个jdbc请求(sql语句),并获取返回的数据库数据进行操作.它经常需要和JDBC Connection Configuration配置原件(配置数据库连接的相关属性,如连接名.密码等)一起使用. 一.准备工作 1.本文使用的是mysql数据库进行测试,数据库的用户名为root(你自己的用户名),用户名密码为*********(你自己的密码) 2.数据库中有表:test,表的数据结构如下: 表中数据如下: select * from

用mvc框架查询数据库数据

介绍下mvc框架,mvc框架一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑. 首先我们要新建一个项目 然后在src文件夹下新建四个包 分别为entity.DAO.servlet.tools 在entity下新建一个实体User package entity; public class User { private String userID; private String usern

Android——SQLite数据库(二)升级数据库、增、删、改、查、事务

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

Android学习笔记(十八)——再谈升级数据库

//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 之前我们为了保证数据库中的表是最新的,只是简单地在 onUpgrade()方法中删除掉了当前所有的表,然后强制重新执行了一遍 onCreate()方法.这种方式在产品的开发阶段确实可以用,但是当产品真正上线了之后就绝对不行了.想象以下场景,比如你编写的某个应用已经成功上线,并且还拥有了不错的下载量.现在由于添加新功能的原因,使得数据库也需要一起升级,然后用户更新了这个版本之后发现以前程序中存储的本地数据全部丢失了.

solr 简单搭建 数据库数据同步(待续)

原来在别的公司负责过文档检索模块的维护(意思就是不是俺开发的啦).所以就稍微接触和研究了下文档检索. 文档检索其实是全文检索,是通过一种技术把N多文档进行一定规律的切割归类,然后创建易于搜索的索引式文件,然后搜索具有某些规律的文档时,能够通过快速定位索引,然后根据索引提供的信息精确定位到文档从而实现迅速找到文档.这个文档一般成为条目. 上家公司的时候使用的是Lucene加上Zoie实现的.lucene是apache下的开源项目,不过并不是全文检索的实现,而是一个全文检索的引擎,是一个架构,是其他

Android入门(十)SQLite创建升级数据库

原文链接:http://www.orlion.ga/603/ 一.创建数据库 Android为了让我们能够更加方便地管理数据库,专门提供了一个 SQLiteOpenHelper帮助类, 借助这个类就可以非常简单地对数据库进行创建和升级. SQLiteOpenHelper是一个抽象类,其中有两个抽象方法分别是onCreate()和onUpgrade(),分别在这两个方法中实现创建和升级数据库的逻辑 SQLiteOpenHelper还有两个十分重要的实例方法,getReadableDatabase(