你好 我們也是要用MY SQL實現資料庫的增刪改查

  • 作者:由 匿名使用者 發表于 曲藝
  • 2023-01-01

你好 我們也是要用MY SQL實現資料庫的增刪改查匿名2016.12.24 回答

一、——-資料庫建立——-

想要對資料庫進行增刪改查,首先要建立一個數據庫,安卓中的資料庫是使用sqlite,我們是透過呼叫SQLiteOpenHelper類來進行資料庫的建立的和操作的。

[java] view plain copy print?在CODE上檢視程式碼片派生到我的程式碼片package com。iigt。crud;

import android。content。Context;

import android。database。sqlite。SQLiteDatabase;import android。database。sqlite。SQLiteOpenHelper;public class MySqlite extends SQLiteOpenHelper {public MySqlite(Context context) {

//context :上下文 , name:資料庫檔案的名稱 factory:用來建立cursor物件,預設為null//version:資料庫的版本號,從1開始,如果發生改變,onUpgrade方法將會呼叫,4。0之後只能升不能將super(context, “info。db”, null,1);

}

//oncreate方法是資料庫第一次建立的時候會被呼叫; 特別適合做表結構的初始化,需要執行sql語句;SQLiteDatabase db可以用來執行sql語句@Override

public void onCreate(SQLiteDatabase db) {//透過SQLiteDatabase執行一個建立表的sql語句db。execSQL(“create table info (_id integer primary key autoincrement,name varchar(20),phone varchar(11))”);}

//onUpgrade資料庫版本號發生改變時才會執行; 特別適合做表結構的修改@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//新增一個phone欄位

//db。execSQL(“alter table info add phone varchar(11)”);}

}

二、——-操作類——-

定義完了資料庫,再就是定義我們使用的往資料庫中存資料的函數了,也就是我們通常所指的DAO函式,不過在定義DAO函式之前,先要定義一個bean類,要不想要操作的資料無從而來。如下是bean和DAO。

[java] view plain copy print?在CODE上檢視程式碼片派生到我的程式碼片package com。iigt。bean;

public class InfoBean {

public String name;

public String phone;

}

DAO的程式碼如下:

[java] view plain copy print?在CODE上檢視程式碼片派生到我的程式碼片package com。iigt。dao;

import android。content。Context;

import android。database。Cursor;

import android。database。sqlite。SQLiteDatabase;import com。iigt。bean。InfoBean;

import com。iigt。crud。MySqlite;

public class InfoDao {

private MySqlite mySqliteOpenHelper;

public InfoDao(Context context){

//建立一個幫助類物件

mySqliteOpenHelper = new MySqlite(context);}

public void add(InfoBean bean){

//呼叫getReadableDatabase方法,來初始化資料庫的建立SQLiteDatabase db = mySqliteOpenHelper。getWritableDatabase();//sql:sql語句, bindArgs:sql語句中佔位符的值db。execSQL(“insert into info(name,phone) values(?,?);”, new Object[]{bean。name,bean。phone});//關閉資料庫物件

db。close();

}

public void del(String name){

SQLiteDatabase db = mySqliteOpenHelper。getReadableDatabase();db。execSQL(“delete from info where name=?;”, new Object[]{name});db。close();

}

public void update(InfoBean bean){

SQLiteDatabase db = mySqliteOpenHelper。getReadableDatabase();db。execSQL(“update info set phone=? where name=?;”, new Object[]{bean。phone,bean。name});db。close();

}

public void query(String name){

//執行sql語句需要sqliteDatabase物件

//呼叫getReadableDatabase方法,來初始化資料庫的建立SQLiteDatabase db = mySqliteOpenHelper。getReadableDatabase();//sql:sql語句, selectionArgs:查詢條件佔位符的值,返回一個cursor物件Cursor cursor = db。rawQuery(“select _id, name,phone from info where name = ?;”, new String []{name});//解析Cursor中的資料

if(cursor != null && cursor。getCount() >0){//判斷cursor中是否存在資料//迴圈遍歷結果集,獲取每一行的內容

while(cursor。moveToNext()){//條件,遊標能否定位到下一行//獲取資料

int id = cursor。getInt(0);

String name_str = cursor。getString(1);

String phone = cursor。getString(2);

System。out。println(“_id:”+id+“;name:”+name_str+“;phone:”+phone);}

cursor。close();//關閉結果集

}

//關閉資料庫物件

db。close();

}

}

三、——-操作介面——-

定義一操作介面來對資料庫進行操作,操作介面包括增刪改查。

[html] view plain copy print?在CODE上檢視程式碼片派生到我的程式碼片

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”android:orientation=“vertical”

tools:context=“。MainActivity” >

android:id=“@+id/bt_add”

android:layout_width=“fill_parent”

android:layout_height=“wrap_content”

android:text=“@string/add” />

android:id=“@+id/bt_del”

android:layout_width=“fill_parent”

android:layout_height=“wrap_content”

android:text=“@string/del” />

android:id=“@+id/bt_update”

android:layout_width=“fill_parent”

android:layout_height=“wrap_content”

android:text=“@string/update” />

android:id=“@+id/bt_query”

android:layout_width=“fill_parent”

android:layout_height=“wrap_content”

android:text=“@string/query” />

四、——-主函式——-

(1)建立一個layout介面,其中包含“增刪改查”4個控制元件。

(2)獲取這四個控制元件,並根據各個控制元件的ID來判斷點選的是哪個事件(3)此時如果是判斷是點選了add事件,就應該增加了,所以需要呼叫增加函式(4)需要先建立一個javabean和它的操作類DAO(5)dao是要向資料庫中增加資料,要建立一個數據庫並進行初始化(6)在dao類中定義向資料庫中的增刪改查方法[java] view plain copy print?在CODE上檢視程式碼片派生到我的程式碼片package com。iigt。crud;

import android。app。Activity;

import android。content。Context;

import android。database。sqlite。SQLiteDatabase;import android。os。Bundle;

import android。view。View;

import android。view。View。OnClickListener;import com。iigt。bean。InfoBean;

import com。iigt。dao。InfoDao;

import com。iigt。adddeldatabase。*;

public class MainActivity extends Activity implements OnClickListener {private Context mContext;

@Override

protected void onCreate(Bundle savedInstanceState) {super。onCreate(savedInstanceState);

setContentView(R。layout。activity_main);

mContext = this;

//建立一個幫助類物件

MySqlite mySqliteOpenHelper = new MySqlite(mContext);//呼叫getReadableDatabase方法,來初始化資料庫的建立SQLiteDatabase db = mySqliteOpenHelper。getReadableDatabase();//找到相應控制元件

findViewById(R。id。bt_add)。setOnClickListener(this);findViewById(R。id。bt_del)。setOnClickListener(this);findViewById(R。id。bt_update)。setOnClickListener(this);findViewById(R。id。bt_query)。setOnClickListener(this);}

@Override

public void onClick(View v) {

InfoDao infoDao = new InfoDao(mContext);//建立一個dao物件做增刪改查switch (v。getId()) {

case R。id。bt_add:

InfoBean bean = new InfoBean();

bean。name = “張三”;

bean。phone =“110”;

infoDao。add(bean);

InfoBean bean1 = new InfoBean();

bean1。name = “李四”;

bean1。phone =“120”;

infoDao。add(bean1);

break;

case R。id。bt_del:

infoDao。del(“張三”);

infoDao。del(“李四”);

break;

case R。id。bt_update:

InfoBean bean2 = new InfoBean();

bean2。name = “張三”;

bean2。phone =“119”;

infoDao。update(bean2);

break;

case R。id。bt_query:

infoDao。query(“張三”);

infoDao。query(“李四”);

break;

default:

break;

}

}

}

Top