sqlite在androidstudio中的使用

关于这个题目网上很多,但真正适合入门的寥寥无几。特对于此种情况,此文章将从最简单的入门做起,然后一步步精通。其实也不能说精通,熟练应用即可。

sqlite,一个小型的数据库,适用于手机端,利用他可以实现联系人的存储、帐号,密码的存储。不受格式限制,存储自由。

只要是数据库,就会有增删改查的操作,而增删改查只是几行代码的问题。只是这儿有个问题,sqlite 除了实现在本地存储之外,能不能实现远程的控制,关于这一点我还没有弄清楚,许多大牛的博客讲解的很少,这点以后会补充。

1. SQLiteOpenHelper 的继承(新建一个.java文件)。

代码:

package com.example.root.qqfinally;

/**
 * Created by root on 18-5-12.
 */


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

public class DatebaseHelper extends SQLiteOpenHelper {
    //数据库名称
    private static final String DATABASE_NAME="jscsd.db";

    //数据库版本号
    private static final int DATABASE_VERSION=1;

    //数据库SQL语句 添加一个表

    public DatebaseHelper(Context context, String name, CursorFactory factory,
                          int version) {
        super(context, DATABASE_NAME, factory, DATABASE_VERSION);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL("create table username( name varchar(5) primary key,password varchar(30))");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
        System.out.println("---版本更新---"+oldVersion+"--->"+newVersion);
    }

}


2.MainActivity.java

package com.example.root.qqfinally;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import android.os.Bundle;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.app.AlertDialog;

import android.os.Bundle;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.app.AlertDialog;

public class MainActivity extends Activity {
    private TextView textview;
    //数据库名称
    private static final String DATABASE_NAME="jscsd.db";

    //数据库版本号
    private static final int DATABASE_VERSION=1;
    //表名
    private static final String TABLE_NAME="username";
    private DatebaseHelper databaseHelper;
    private SQLiteDatabase db;
    private Button button1;
    private EditText nameText,passText;
    private Intent intent;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);

        nameText = (EditText) findViewById(R.id.username);
        passText = (EditText) findViewById(R.id.pasw);

        button1 = (Button) findViewById(R.id.denglu);
//        textview=(TextView)findViewById(R.id.zhuce);
//        textview.setOnClickListener(new OnClickListener(){
//
//            @Override
//            public void onClick(View arg0) {
//                // TODO Auto-generated method stub
//                intent=new Intent(MainActivity.this,zhuce.class);
//                startActivity(intent);
//            }
//
//        });

        //启动注册页面
        TextView textview = (TextView) findViewById(R.id.zhuce);
        textview.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent a = new Intent(MainActivity.this, zhuceActivity.class);
                startActivity(a);
            }

        });

        //启动随便看看页面
        TextView textview1 = (TextView) findViewById(R.id.suibian);
        textview1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent a = new Intent(MainActivity.this, suibiankankanActivity.class);
                startActivity(a);
            }

        });
        button1.setOnClickListener(new LoginListener());


    }
        class LoginListener implements OnClickListener{
            public void onClick(View v){
                String nameString =nameText.getText().toString();
                String passString=passText.getText().toString();
                if(nameString.equals("")||passString.equals(""))
                {
                    //弹出消息框
                    new AlertDialog.Builder(MainActivity.this).setTitle("错误")
                            .setMessage("帐号或密码不能空").setPositiveButton("确定", null)
                            .show();
                }else{
                    isUserinfo(nameString,passString);
                }
            }
        }

        public Boolean isUserinfo(String name,String pass)
        {
            String nameString=name;
            String passString=pass;
            databaseHelper=new DatebaseHelper(MainActivity.this,DATABASE_NAME,null,DATABASE_VERSION);
            db =  databaseHelper.getReadableDatabase();
            try{
                Cursor cursor=db.query(TABLE_NAME, new String[]{"name","password"},"name=?",new String[]{nameString},null,null,"password");
                while(cursor.moveToNext())
                {
                    String password=cursor.getString(cursor.getColumnIndex("password"));


                    if(passString.equals(password))
                    {
                        new AlertDialog.Builder(MainActivity.this).setTitle("正确")
                                .setMessage("成功登录").setPositiveButton("确定", new DialogInterface.OnClickListener() {

                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                // TODO Auto-generated method stub
                                Intent a=new Intent(MainActivity.this,zhuActivity.class);
                                startActivity(a);
                            }
                        }).show();

                        break;
                    }
                    else
                    {
                        Toast.makeText(this, "用户名密码不正确",Toast.LENGTH_LONG).show();
                        break;
                    }
                }




            }catch(SQLiteException e){
                CreatTable();
            }
            return false;
        }



        private void CreatTable() {
            // TODO Auto-generated method stub
            String sql = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME
                    + " (name varchar(30) primary key,password varchar(30));";
            try{
                db.execSQL(sql);
            }catch(SQLException ex){}
        }


 //   @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;
//    }


}
3.mainactivity.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:orientation="vertical"
    android:background="#74d6e6"
    tools:context=".MainActivity" >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <ImageView
            android:id="@+id/banner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@mipmap/ic_launcher"
            android:layout_gravity="center"
            android:layout_marginTop="90sp"/>
        <EditText
            android:id="@+id/username"
            android:layout_gravity="center"
            android:layout_marginTop="30sp"
            android:hint="用户名"
            android:layout_width="300sp"
            android:layout_height="wrap_content"/>
        <EditText
            android:id="@+id/pasw"
            android:layout_gravity="center"
            android:layout_marginTop="30sp"
            android:hint="密码"
            android:password="true"
            android:layout_width="300sp"
            android:layout_height="wrap_content"/>
        <Button
            android:id="@+id/denglu"
            android:layout_width="300sp"
            android:text="登录"
            android:layout_marginTop="30sp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"/>
    </LinearLayout>
    <RelativeLayout
        android:id="@+id/relaativelayout1"
        android:layout_width="fill_parent"
        android:layout_alignParentBottom="true"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10sp">
        <View
            android:id="@+id/view1"
            android:layout_width="300sp"
            android:layout_height="1sp"
            android:background="#d7f2f7"
            android:layout_centerHorizontal="true"
            />
        <View
            android:id="@+id/view2"
            android:layout_width="1sp"
            android:layout_height="40sp"
            android:background="#d7f2f7"
            android:layout_centerInParent="true"
            android:layout_below="@+id/view1"/>
        <TextView
            android:id="@+id/zhuce"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="注册"
            android:textSize="20sp"
            android:layout_toLeftOf="@+id/view2"
            android:layout_marginRight="30sp"
            android:layout_marginTop="10sp"
            />
        <TextView
            android:id="@+id/suibian"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="随便看看"
            android:textSize="20sp"
            android:layout_toRightOf="@+id/view2"
            android:layout_marginLeft="30sp"
            android:layout_marginTop="10sp"
            />

    </RelativeLayout>


</RelativeLayout>

4.注册界面
package com.example.root.qqfinally;

import android.app.Activity;
import android.content.ContentValues;
import android.os.Bundle;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class zhuceActivity extends Activity {
    private EditText edittext1,edittext2,edittext3;
    private Button button;
    private DatebaseHelper databaseHelper;
    //数据库名称
    private static final String DATABASE_NAME="jscsd.db";
    //数据库版本号
    private static final int DATABASE_VERSION=1;

    private static final String TABLE_NAME="username";
    private SQLiteDatabase db;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_zhuce);
        edittext1=(EditText)findViewById(R.id.editview1);
        edittext2=(EditText)findViewById(R.id.editview2);
        edittext3=(EditText)findViewById(R.id.editview3);

        button=(Button)findViewById(R.id.tijiao);
        button.setOnClickListener(new OnClickListener(){


            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String namestring = edittext1.getText().toString();
                String passstring = edittext2.getText().toString();
                String repassstring=edittext3.getText().toString();
                if(passstring.equals(repassstring))
                {
                    databaseHelper=new DatebaseHelper(zhuceActivity.this,DATABASE_NAME,null,DATABASE_VERSION);
                    db =  databaseHelper.getReadableDatabase();
                    db.execSQL("insert into username (name,password) values(?,?)",new String[]{namestring,passstring});
                    insertData (databaseHelper.getReadableDatabase(),edittext1,edittext2,edittext3);

                    Toast.makeText(zhuceActivity.this, "注册成功!", Toast.LENGTH_LONG).show();
                    Intent b=new Intent(zhuceActivity.this,MainActivity.class);
                    startActivity(b);
                }
                else
                {
                    Toast.makeText(zhuceActivity.this,"两次密码不一致", Toast.LENGTH_LONG).show();
                }
            }

            private void insertData(SQLiteDatabase readableDatabase, EditText edittext1, EditText edittext2, EditText edittext3) {
                ContentValues values =new ContentValues();
                values.put("username", String.valueOf(edittext1));
                values.put("password", String.valueOf(edittext2));
                values.put("password", String.valueOf(edittext3));
                readableDatabase.insert("zhuce",null,values);
            }

        });
    }

}

5.注册.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:orientation="vertical" >
    <TextView
        android:id="@+id/teview1"
        android:layout_width="fill_parent"
        android:layout_height="70sp"
        android:text="注册"
        android:background="#74d6e6"
        android:textSize="40sp"
        android:paddingTop="10sp"
        android:paddingLeft="20sp"/>
    <EditText
        android:id="@+id/editview1"
        android:layout_marginTop="50sp"
        android:layout_width="300sp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:hint="用户名"/>
    <EditText
        android:id="@+id/editview2"
        android:layout_marginTop="30sp"
        android:layout_width="300sp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:hint="密码"
        android:password="true"/>
    <EditText
        android:id="@+id/editview3"
        android:layout_marginTop="30sp"
        android:layout_width="300sp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:hint="确认密码"
        android:password="true"/>
    <!--<EditText-->
        <!--android:id="@+id/editview4"-->
        <!--android:layout_marginTop="50sp"-->
        <!--android:layout_width="300sp"-->
        <!--android:layout_height="wrap_content"-->
        <!--android:layout_gravity="center"-->
        <!--android:hint="电子邮箱"/>-->
    <Button
        android:id="@+id/tijiao"
        android:layout_width="300sp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="30sp"
        android:text="提交注册"/>

</LinearLayout>


6.效果自行观看,代码我是清册的,可以正常运行。如果直接复制的话会有错误,首先是包名,要改称自己的,还应该新建一个activity,有啥问题可以加我qq联系305591377


猜你喜欢

转载自blog.csdn.net/jscsd226/article/details/80377130