1. 程式人生 > >android SQLite實現本地登入註冊功能,SQLite簡單應用(android studio)

android SQLite實現本地登入註冊功能,SQLite簡單應用(android studio)

     SQLite簡單用法介紹            

SQLite基本用法很簡單,繼承SQLiteOpenHelper 中有兩個抽象方法,分別是onCreate()和 onUpgrade(),我們必須在自己的幫助類裡面重寫這兩個方法,然後分別在這兩個方法中去實現建立、升級資料庫的邏輯。

     SQLiteOpenHelper 中 還 有 兩 個 非 常 重 要 的 實 例 方 法 , getReadableDatabase() 和getWritableDatabase()。

使用 SQL 操作資料庫

     新增資料的方法如下:
     db.execSQL("insert into Book (name, author, pages, price) values(?, ?, ?, ?)",
new String[] { "The Da Vinci Code", "Dan Brown", "454", "16.96" });
     db.execSQL("insert into Book (name, author, pages, price) values(?, ?, ?, ?)",
new String[] { "The Lost Symbol", "Dan Brown", "510", "19.95" });
更新資料的方法如下:
    db.execSQL("update Book set price = ? where name = ?", new String[] { "10.99",
"The Da Vinci Code" });
刪除資料的方法如下:
    db.execSQL("delete from Book where pages > ?", new String[] { "500" });
查詢資料的方法如下:
    db.rawQuery("select * from Book", null);

本地實現登陸註冊

效果圖:

專案架構圖

實現程式碼

OpenHelper類

public class OpenHelper extends SQLiteOpenHelper {

    //建表語句
public static final String CREATE_USER = "create table User ("
+ "id integer primary key autoincrement, "
+ "username text, "
+ "userpwd text)";

    public OpenHelper(Context context, String name, CursorFactory factory,
                      int 
version) { super(context, name, factory, version); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL(CREATE_USER);//建立使用者表 } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) { // TODO Auto-generated method stub } }
SqliteDB類:

public class SqliteDB {
    /**
     * 資料庫名
     */
public static final String DB_NAME = "sqlite_dbname";
    /**
     * 資料庫版本
     */
public static final int VERSION = 1;

    private static SqliteDB sqliteDB;

    private SQLiteDatabase db;

    private SqliteDB(Context context) {
        OpenHelper dbHelper = new OpenHelper(context, DB_NAME, null, VERSION);
        db = dbHelper.getWritableDatabase();
    }

    /**
     * 獲取SqliteDB例項
     * @param context
*/
public synchronized static SqliteDB getInstance(Context context) {
        if (sqliteDB == null) {
            sqliteDB = new SqliteDB(context);
        }
        return sqliteDB;
    }

    /**
     * 將User例項儲存到資料庫。
     */
public int  saveUser(User user) {
        if (user != null) {
           /* ContentValues values = new ContentValues();
            values.put("username", user.getUsername());
            values.put("userpwd", user.getUserpwd());
            db.insert("User", null, values);*/
Cursor cursor = db.rawQuery("select * from User where username=?", new String[]{user.getUsername().toString()});
            if (cursor.getCount() > 0) {
                return -1;
            } else {
                try {
                    db.execSQL("insert into User(username,userpwd) values(?,?) ", new String[]{user.getUsername().toString(), user.getUserpwd().toString()});
                } catch (Exception e) {
                    Log.d("錯誤", e.getMessage().toString());
                }
                return 1;
            }
        }
        else {
            return 0;
        }
    }

    /**
     * 從資料庫讀取User資訊。
     */
public List<User> loadUser() {
        List<User> list = new ArrayList<User>();
        Cursor cursor = db
.query("User", null, null, null, null, null, null);
        if (cursor.moveToFirst()) {
            do {
                User user = new User();
                user.setId(cursor.getInt(cursor.getColumnIndex("id")));
                user.setUsername(cursor.getString(cursor
                        .getColumnIndex("username")));
                user.setUserpwd(cursor.getString(cursor

                        .getColumnIndex("userpwd")));
                list.add(user);
            } while (cursor.moveToNext());
        }
        return list;
    }

    public int Quer(String pwd,String name)
    {


        HashMap<String,String> hashmap=new HashMap<String,String>();
        Cursor cursor =db.rawQuery("select * from User where username=?", new String[]{name});

       // hashmap.put("name",db.rawQuery("select * from User where name=?",new String[]{name}).toString());
if (cursor.getCount()>0)
        {
            Cursor pwdcursor =db.rawQuery("select * from User where userpwd=? and username=?",new String[]{pwd,name});
            if (pwdcursor.getCount()>0)
            {
                return 1;
            }
            else {
                return -1;
            }
        }
        else {
            return 0;
        }


    }
}

User類:
package model;

/**
 * Created by Administrator on 2015/11/10.
 */
public class User {

    private int id;
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }



    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getUserpwd() {
        return userpwd;
    }

    public void setUserpwd(String userpwd) {
        this.userpwd = userpwd;
    }

    private String username;
    private String userpwd;

}
LoginActivity:

package activity;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import com.example.administrator.sqlitetest.R;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import model.SqliteDB;
import model.User;

public class LoginActivity extends AppCompatActivity {
    private Button reg;
    private Button login;
    private EditText count;
    private EditText pwd;
    private TextView state;
    private List<User> userList;
    private List<User> dataList = new ArrayList<>();
    @Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        reg= (Button) findViewById(R.id.regin);
        login= (Button) findViewById(R.id.login);
        count= (EditText) findViewById(R.id.count);
        pwd= (EditText) findViewById(R.id.pwd);
        state= (TextView) findViewById(R.id.state);
        reg.setOnClickListener(new View.OnClickListener() {
            @Override
public void onClick(View v) {
                String name=count.getText().toString().trim();
                String pass=pwd.getText().toString().trim();

                User user=new User();
                user.setUsername(name);
                user.setUserpwd(pass);

             int result=SqliteDB.getInstance(getApplicationContext()).saveUser(user);
                if (result==1){
                    state.setText("註冊成功!");
                }else  if (result==-1)
                {
                    state.setText("使用者名稱已經存在!");
                }
                else
{
                    state.setText("!");
                }

            }
        });
        login.setOnClickListener(new View.OnClickListener() {
            @Override
public void onClick(View v) {
                String name=count.getText().toString().trim();
                String pass=pwd.getText().toString().trim();
                //userList=SqliteDB.getInstance(getApplicationContext()).loadUser();
int result=SqliteDB.getInstance(getApplicationContext()).Quer(pass,name);
                if (result==1)
                {
                        state.setText("登入成功!");
                }
                else if (result==0){
                    state.setText("使用者名稱不存在!");

                }
                else if(result==-1)
                {
                    state.setText("密碼錯誤!");
                }
/*                for (User user : userList) {
                    if (user.getUsername().equals(name))
                    {
                        if (user.getUserpwd().equals(pass))
                        {
                            state.setText("登入成功!");
                        }else {
                            state.setText("密碼錯誤!");
                        }
                    }
                    else {
                        state.setText("使用者名稱不存在!");
                    }
                }*/
}
        });
    }
}




相關推薦

android SQLite實現本地登入註冊功能,SQLite簡單應用android studio

     SQLite簡單用法介紹             SQLite基本用法很簡單,繼承SQLiteOpenHelper 中有兩個抽象方法,分別是onCreate()和 onUpgrade(),我們必須在自己的幫助類裡面重寫這兩個方法,然後分別在這兩個方法中去實現建

php微信網頁開發實現自動登入註冊功能例項

功能:自動登入註冊功能 描述:php實現微信網頁自動登入註冊功能 範圍:適用於所有php版本 thinkphp5.0例項 $token = cookie('token'); if($token){ //這裡寫登入後的邏輯 }else{ $

【解決】php實現頁面登入註冊功能實現跳轉

目錄如下:   思路是不通過資料庫等操作實現頁面(頁面比較簡陋,請笑納) 關於register功能 html頁面必要的表單功能 在頭部寫上 寫上條件判斷 if ($_SERVER['REQUEST_METHOD'] === 'POST') { login();

Ajax實現區域性重新整理和非同步處理簡單應用實現簡單註冊驗證

4.//從資料庫中查詢相應欄位並反饋給servlet 部分 @SuppressWarnings({ "unused", "null" })  public User find(String name){   List<Map<String,Object>> lists=new Arra

Java專案案例之---登入註冊和增刪改查jsp+servlet

登入註冊和增刪改查(jsp+servlet) (一)功能介紹 1.使用者輸入正確的密碼進行登入 2.新使用者可以進行註冊 3.登入後顯示學生的資訊表 4.可以新增學生 5.可以修改學生已有資訊 6.可以刪除已有學生 7.可以顯示登入的使用者學號(每個頁面都可以通過呼叫session顯示) 8

Android----------OkHttp網路請求框架Get和Post簡單封裝泛型

請求框架的類: OkHttp依賴: compile 'com.squareup.okhttp3:okhttp:3.8.1' RecyclerView依賴: compile 'com.android.support:recyclerview-v7:26.0.0-alpha1

Android 登入註冊 資料庫SQLite 驗證

展示效果 程式碼區 MainActivity(登入方法) public class MainActivity extends AppCompatActivity { @BindView(R.id.editText) EditTex

android-servlet-mysql實現登錄註冊功能

final 選擇 alt sta 姓名 delete byte[] dsta pstmt 安卓項目圖: 安卓端Get請求服務端登錄代碼: import java.io.BufferedReader;import java.io.InputStream;import

ajax+springboot+mybits實現登入註冊功能

html程式碼 使用者名稱:<input type="text" placeholder="使用者名稱” id="form-username"> 密碼:<input type="password" placeholder="密碼" id

HTML-css-JavaScript實現簡單登入註冊功能,並讓登入註冊在同一頁內切換。

(水平有限,如果發現有什麼問題,歡迎指出來) HTML+css先做出來一個登入頁,包括基本的輸入框和button。再做一個註冊頁。程式碼如下: 隨後解釋程式碼 <form id="register" name="myForm" class="register"

javaweb簡單登入註冊功能實現

下面是使用者登入註冊流程圖 登陸介面 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPat

java利用jdbc連線Mysql資料庫——實現登入註冊功能

實現功能如下: ①0選中註冊,若使用者名稱相同則註冊失敗,重新選擇 ②若使用者名稱不存在則儲存到資料庫 ③1選中登入,若使用者名稱和密碼符合時,登入成功。 程式碼如下: package com.lucfzy; import java.sql.Connection; imp

day78_淘淘商城專案_11_實現SSO系統的登入註冊功能 + 門戶首頁展示使用者名稱 + ajax請求跨域問題詳解_匠心筆記

淘淘商城專案_11 1、服務介面實現 1.1、檢查資料是否可用介面開發 1.1.1、功能分析 1.1.2、Dao 1.1.3、Service 1.1.4、釋出服務

用MVC設計模式實現簡單的JavaWeb登入註冊功能

MVC 全稱Model(模型)-View(檢視)-Controller(控制器),這是一種開發模式,他的好處是可以將介面和業務邏輯分離。 Model(模型),是程式的主體部分,主要包含業務資料和業務邏輯。在模型層,還會涉及到使用者釋出的服務,在服務中會根據不

使用springmvc+mybatis實現增刪改查並進行登入註冊功能

一、第一次使用springmvc+mybatis整合出的框架,使用的是maven版本 1.使用maven有以下主要要建立maven資料夾,匯入maven包並進行配置環境變數,在後面的文章中會提到maven配置。使用maven主要是依賴其pom.xml配置檔案進行匯入jar包

基於ssm三大框架實現登入註冊功能的配置過程

第一步  ssm jar包整合,本人的下載資源裡面有整合的jar包主要有:ssm整合jar包 ,jstl,資料庫連線,josn junit,等jar包第二步,建立各類包和配置檔案,儘量把各個配置檔案分開,統一放在一個自己建立的config資料夾中,容易區分,後面也好檢查更改主

實現登入註冊功能連線資料庫的JSP小專案

一、實現登入功能首先用sublime製作有表單檢查功能的login.html,程式碼具體如下:為了簡潔,我在Eclipse裡將CSS的引用方式改為鏈入式了,而接下來是在sublime剛做好後的程式碼截圖:然後將<form>改為<formaction="chk

環信sdk實現登入註冊功能第三方通訊

最近寫聊天軟體,需要第三方通訊實現聊天功能,下面再分享一下環信sdk整合(個人心得:我是個新手,其實整合環信sdk我之前用了接近一個星期參考官方文件,也百度瞭解了很多,最後整合失敗了,,實在是心疼就放棄了環信,接著去學極光sdk的整合,極光弄成功之後再回來繼續研究環信的,給我

Android登入註冊功能封裝

我們都知道Android應用軟體基本上都會用到登入註冊功能,那麼對一個一個好的登入註冊模組進行封裝就勢在必行了。這裡給大家介紹一下我的第一個專案中所用到的登入註冊功能的,已經對其進行封裝,希望能對大家有幫助,如果有什麼錯誤或者改進的話希望各位可以指出。 我們都知

【代碼學習】Spring MVC實現用戶註冊功能

技術分享 http請求 pac 應用 idea c-s dap 適配器 新建項目 1.實驗介紹 -----------------------------------------------------------------------------------------