zoukankan      html  css  js  c++  java
  • 039 Android SQLite数据库(了解)

    1.介绍

    注意:当有大量相似结构的数据需要存储的时候,需要使用数据库。

    2.SQLiteOpenHelper简介

    注意:数据库的创建方法总结:

    (1)定义一个类继承SQLiteOpenHelper

    onCreate()方法:当数据库第一次创建时调用,特别适合做表结构的初始化。

    onUpdate()方法:当数据库版本进行更新时调用。

    3.简单SQL语句

    4.xml文件页面布局

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity"
        >
    
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginLeft="20dp">
    
            <TextView
                android:id="@+id/textView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="编号:" />
    
            <EditText
                android:id="@+id/editText_id"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="textPersonName"
                android:text="" />
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginLeft="20dp">
    
            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="姓名:" />
    
            <EditText
                android:id="@+id/editText_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="textPersonName"
                android:text="" />
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginLeft="20dp">
    
            <TextView
                android:id="@+id/textView3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="年龄:" />
    
            <EditText
                android:id="@+id/editText_age"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="textPersonName"
                android:text="" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginLeft="20dp">
    
            <TextView
                android:id="@+id/textView4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="请输入你要查找的编号:" />
    
            <EditText
                android:id="@+id/editText_qurryid"
                android:layout_width="70dp"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="textPersonName"
                android:text="" />
    
            <Button
                android:id="@+id/button_qurryById"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="查找" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginLeft="20dp">
    
    
            <Button
                android:id="@+id/button_add"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="添加"
                android:layout_marginRight="10dp"/>
    
            <Button
                android:id="@+id/button_delete"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="删除"
                android:layout_marginRight="10dp"/>
            <Button
                android:id="@+id/button_modify"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="修改" />
        </LinearLayout>
    
        <TextView
            android:id="@+id/textView5"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TextView" />
    </LinearLayout>

    5.java后台

    主界面

    package com.lucky.test48sqlite;
    
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    
    public class MainActivity extends AppCompatActivity {
            Button button_queryByid;
            Button button_add;
            Button button_delete;
            Button button_modify;
            EditText editText_id;
            EditText editText_name;
            EditText editText_age;
            EditText editText_inputid;
            TextView textView_findresult;
            SQLiteDatabase sqLiteDatabase;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            init();
            
            MyDataBase myDataBase=new MyDataBase(MainActivity.this); //实例化数据库
            sqLiteDatabase=myDataBase.getWritableDatabase();       //创建数据库
    
            //绑定按钮点击事件
            button_queryByid.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //根据id进行查询
                    textView_findresult.setText("");
                    String sql="select *from user where 编号=?";
                    Cursor cursor=sqLiteDatabase.rawQuery(sql,new String[]{editText_inputid.getText().toString()});
                    //判断游标是否可以移到下一行,若可以,则有数据
                    while (cursor.moveToNext()){
                        String name=cursor.getString(cursor.getColumnIndex("姓名"));
                        int id=cursor.getInt(cursor.getColumnIndex("编号"));
                        textView_findresult.append("
    编号:"+id+"	姓名:"+name);
                    }
                }
            });
    
            button_add.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //向数据库中添加数据
                    String sql="insert into user(编号,姓名,年龄) values(?,?,?)";
                    sqLiteDatabase.execSQL(sql,new Object[]{Integer.parseInt(editText_id.getText().toString()),
                    editText_name.getText().toString(),
                    Integer.parseInt(editText_age.getText().toString())});
                }
            });
    
            button_delete.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //删除数据库中的数据
                    String sql="delete from user where 编号=?";
                    sqLiteDatabase.execSQL(sql,new Object[]{Integer.parseInt(editText_id.getText().toString())});
                }
            });
    
            button_modify.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //修改数据库内容
                    String sql="update user set 编号=?,姓名=?,年龄=?";
                    sqLiteDatabase.execSQL(sql,new Object[]{Integer.parseInt(editText_id.getText().toString()),
                            editText_name.getText().toString(),
                            Integer.parseInt(editText_age.getText().toString())});
                }
            });
    
    
        }
    
        private void init() {
            button_add=findViewById(R.id.button_add);
            button_delete=findViewById(R.id.button_delete);
            button_modify=findViewById(R.id.button_modify);
            button_queryByid=findViewById(R.id.button_qurryById);
            editText_age=findViewById(R.id.editText_age);
            editText_id=findViewById(R.id.editText_id);
            editText_name=findViewById(R.id.editText_name);
            editText_inputid=findViewById(R.id.editText_qurryid);
            textView_findresult=findViewById(R.id.textView5);
        }
    
    }

    Mydatabase工具类

    package com.lucky.test48sqlite;
    
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    
    public class MyDataBase extends SQLiteOpenHelper {
        static int version=1;
        static String name="lucky.db";
        public MyDataBase( Context context) {
            //参数1:context为上下文,参数2:name为数据库名称,参数3可默认为null,参数4:为数据库版本
            super(context, name, null, version);
        }
    
        //当数据库第一次被创建的时候,调用该方法,适合进行数据库表的初始化,创建数据库(注意:数据库创建在安卓app文件包内)
        @Override
        public void onCreate(SQLiteDatabase db) {
            String sql="create table user(编号 Integer,姓名 varchar(10),年龄 Integer)";
            db.execSQL(sql);
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    
        }
    }
  • 相关阅读:
    21. Fluentd输出插件:rewrite_tag_filter用法详解
    19. Fluentd输入插件:in_http用法详解
    18. Fluentd输出插件:out_stdout用法详解
    17. Fluentd输出插件:out_copy用法详解
    15. Fluentd输入插件:in_tail用法详解
    14. Fluentd输出插件:out_forward用法详解
    13. Fluentd输出插件:in_forward用法详解
    16. 综合使用tail、forward、copy和stdout
    20. 使用Fluentd发送告警邮件
    使用Fluentd进行简单流处理
  • 原文地址:https://www.cnblogs.com/luckyplj/p/10533611.html
Copyright © 2011-2022 走看看