SQLite是一个开源SQL数据库,用于将数据存储到设备上的文本文件中。Android带有内置的SQLite数据库实现。

SQLite支持所有关系数据库功能。为了访问此数据库,您不需要为它建立任何类型的连接,如JDBC,ODBC等

数据库 - 包

主要包是android.database.sqlite,其中包含管理您自己的数据库的类

数据库 - 创建

要创建数据库,只需使用数据库名称和模式作为参数调用此方法openOrCreateDatabase。它返回一个SQLite数据库的实例,您必须在自己的对象中接收它。它的语法如下

SQLiteDatabase mydatabase = openOrCreateDatabase("your database name",MODE_PRIVATE,null);

除此之外,数据库包中还有其他功能可以完成这项工作。它们列在下面

序号

方法和描述

1

openDatabase(String path,SQLiteDatabase.CursorFactory factory,int flags,DatabaseErrorHandler errorHandler)

此方法仅使用适当的标志模式打开现有数据库。公共标志模式可以是OPEN_READWRITE OPEN_READONLY

2

openDatabase(String path,SQLiteDatabase.CursorFactory factory,int flags)

它类似于上面的方法,因为它还打开现有数据库,但它没有定义任何处理数据库错误的处理程序

3

openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory)

它不仅会打开,还会创建数据库(如果不存在)。此方法等同于openDatabase方法。

4

openOrCreateDatabase(文件文件,SQLiteDatabase.CursorFactory工厂)

此方法与上述方法类似,但它将File对象作为路径而不是字符串。它相当于file.getPath()

数据库 - 插入

我们可以使用SQLiteDatabase类中定义的execSQL方法创建表或将数据插入表中。其语法如下

mydatabase.execSQL("CREATE TABLE IF NOT EXISTS codingdict(Username VARCHAR,Password VARCHAR);");

mydatabase.execSQL("INSERT INTO codingdict VALUES('admin','admin');");

这将在我们的数据库中的表中插入一些值。下面给出了另一种方法,它也可以完成相同的工作,但需要一些额外的参数

序号

方法和描述

1

execSQL(String sql,Object [] bindArgs)

此方法不仅插入数据,还用于使用绑定参数更新或修改数据库中已存在的数据

数据库 - 获取

我们可以使用Cursor类的对象从数据库中检索任何内容。我们将调用这个名为rawQuery的类的方法,它将返回一个结果集,其中光标指向该表。我们可以向前移动光标并检索数据。

Cursor resultSet = mydatbase.rawQuery("Select * from codingdict",null);

resultSet.moveToFirst();

String username = resultSet.getString(0);

String password = resultSet.getString(1);

Cursor类中还有其他可用的函数,可以让我们有效地检索数据。包括

序号

方法和描述

1

getColumnCount()

此方法返回表的总列数。

2

getColumnIndex(String columnName)

此方法通过指定列的名称来返回列的索引号

3

getColumnName(int columnIndex)

此方法通过指定列的索引来返回列的名称

4

getColumnNames()

此方法返回表的所有列名称的数组。

getCount()

此方法返回游标中的总行数

6

getPosition()

此方法返回表中光标的当前位置

7

isClosed()

如果光标关闭,则此方法返回true,否则返回false

数据库 - 助手类

为了管理与数据库相关的所有操作,已经给出了一个辅助类,称为SQLiteOpenHelper。它自动管理数据库的创建和更新。其语法如下

public class DBHelper extends SQLiteOpenHelper {

public DBHelper(){

super(context,DATABASE_NAME,null,1);

}

public void onCreate(SQLiteDatabase db) {}

public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {}

}

这是一个演示SQLite数据库使用的示例。它创建了一个基本联系人应用程序,允许插入,删除和修改联系人。

要试验此示例,您需要在支持相机的实际设备上运行此示例。

序号

描述

1

您将使用Android studio在com.example.sairamkrishna.myapplication包下创建Android应用程序。

2

修改src / MainActivity.java文件以获取所有XML组件的引用并填充listView上的联系人。

3

创建将管理数据库工作的新src / DBHelper.java

4

创建一个新的Activity作为DisplayContact.java,它将在屏幕上显示联系人

5

修改res / layout / activity_main以添加相应的XML组件

6

修改res / layout / activity_display_contact.xml以添加相应的XML组件

7

修改res / values / string.xml以添加必要的字符串组件

8

修改res / menu / display_contact.xml以添加必要的菜单组件

9

创建一个新菜单作为res / menu / mainmenu.xml以添加插入联系人选项

10

运行应用程序并选择正在运行的Android设备并在其上安装应用程序并验证结果。

以下是修改后的 MainActivity.java 的内容。

package com.example.sairamkrishna.myapplication;

import android.content.Context;

import android.content.Intent;

import android.support.v7.app.ActionBarActivity;

import android.os.Bundle;

import android.view.KeyEvent;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.ListView;

import java.util.ArrayList;

import java.util.List;

public class MainActivity extends ActionBarActivity {

public final static String EXTRA_MESSAGE = "MESSAGE";

private ListView obj;

DBHelper mydb;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mydb = new DBHelper(this);

ArrayList array_list = mydb.getAllCotacts();

ArrayAdapter arrayAdapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1, array_list);

obj = (ListView)findViewById(R.id.listView1);

obj.setAdapter(arrayAdapter);

obj.setOnItemClickListener(new OnItemClickListener(){

@Override

public void onItemClick(AdapterView> arg0, View arg1, int arg2,long arg3) {

// TODO Auto-generated method stub

int id_To_Search = arg2 + 1;

Bundle dataBundle = new Bundle();

dataBundle.putInt("id", id_To_Search);

Intent intent = new Intent(getApplicationContext(),DisplayContact.class);

intent.putExtras(dataBundle);

startActivity(intent);

}

});

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.menu_main, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item){

super.onOptionsItemSelected(item);

switch(item.getItemId()) {

case R.id.item1:Bundle dataBundle = new Bundle();

dataBundle.putInt("id", 0);

Intent intent = new Intent(getApplicationContext(),DisplayContact.class);

intent.putExtras(dataBundle);

startActivity(intent);

return true;

default:

return super.onOptionsItemSelected(item);

}

}

public boolean onKeyDown(int keycode, KeyEvent event) {

if (keycode == KeyEvent.KEYCODE_BACK) {

moveTaskToBack(true);

}

return super.onKeyDown(keycode, event);

}

}

以下是显示联系活动 DisplayContact.java 的修改内容

package com. example.sairamkrishna.myapplication;

import android.os.Bundle;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.content.Intent;

import android.database.Cursor;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

import android.widget.Toast;

public class DisplayContact extends Activity {

int from_Where_I_Am_Coming = 0;

private DBHelper mydb ;

TextView name ;

TextView phone;

TextView email;

TextView street;

TextView place;

int id_To_Update = 0;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_display_contact);

name = (TextView) findViewById(R.id.editTextName);

phone = (TextView) findViewById(R.id.editTextPhone);

email = (TextView) findViewById(R.id.editTextStreet);

street = (TextView) findViewById(R.id.editTextEmail);

place = (TextView) findViewById(R.id.editTextCity);

mydb = new DBHelper(this);

Bundle extras = getIntent().getExtras();

if(extras !=null) {

int Value = extras.getInt("id");

if(Value>0){

//means this is the view part not the add contact part.

Cursor rs = mydb.getData(Value);

id_To_Update = Value;

rs.moveToFirst();

String nam = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_NAME));

String phon = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_PHONE));

String emai = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_EMAIL));

String stree = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_STREET));

String plac = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_CITY));

if (!rs.isClosed()) {

rs.close();

}

Button b = (Button)findViewById(R.id.button1);

b.setVisibility(View.INVISIBLE);

name.setText((CharSequence)nam);

name.setFocusable(false);

name.setClickable(false);

phone.setText((CharSequence)phon);

phone.setFocusable(false);

phone.setClickable(false);

email.setText((CharSequence)emai);

email.setFocusable(false);

email.setClickable(false);

street.setText((CharSequence)stree);

street.setFocusable(false);

street.setClickable(false);

place.setText((CharSequence)plac);

place.setFocusable(false);

place.setClickable(false);

}

}

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

Bundle extras = getIntent().getExtras();

if(extras !=null) {

int Value = extras.getInt("id");

if(Value>0){

getMenuInflater().inflate(R.menu.display_contact, menu);

} else{

getMenuInflater().inflate(R.menu.menu_main menu);

}

}

return true;

}

public boolean onOptionsItemSelected(MenuItem item) {

super.onOptionsItemSelected(item);

switch(item.getItemId()) {

case R.id.Edit_Contact:

Button b = (Button)findViewById(R.id.button1);

b.setVisibility(View.VISIBLE);

name.setEnabled(true);

name.setFocusableInTouchMode(true);

name.setClickable(true);

phone.setEnabled(true);

phone.setFocusableInTouchMode(true);

phone.setClickable(true);

email.setEnabled(true);

email.setFocusableInTouchMode(true);

email.setClickable(true);

street.setEnabled(true);

street.setFocusableInTouchMode(true);

street.setClickable(true);

place.setEnabled(true);

place.setFocusableInTouchMode(true);

place.setClickable(true);

return true;

case R.id.Delete_Contact:

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setMessage(R.string.deleteContact)

.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int id) {

mydb.deleteContact(id_To_Update);

Toast.makeText(getApplicationContext(), "Deleted Successfully",

Toast.LENGTH_SHORT).show();

Intent intent = new Intent(getApplicationContext(),MainActivity.class);

startActivity(intent);

}

})

.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int id) {

// User cancelled the dialog

}

});

AlertDialog d = builder.create();

d.setTitle("Are you sure");

d.show();

return true;

default:

return super.onOptionsItemSelected(item);

}

}

public void run(View view) {

Bundle extras = getIntent().getExtras();

if(extras !=null) {

int Value = extras.getInt("id");

if(Value>0){

if(mydb.updateContact(id_To_Update,name.getText().toString(),

phone.getText().toString(), email.getText().toString(),

street.getText().toString(), place.getText().toString())){

Toast.makeText(getApplicationContext(), "Updated", Toast.LENGTH_SHORT).show();

Intent intent = new Intent(getApplicationContext(),MainActivity.class);

startActivity(intent);

} else{

Toast.makeText(getApplicationContext(), "not Updated", Toast.LENGTH_SHORT).show();

}

} else{

if(mydb.insertContact(name.getText().toString(), phone.getText().toString(),

email.getText().toString(), street.getText().toString(),

place.getText().toString())){

Toast.makeText(getApplicationContext(), "done",

Toast.LENGTH_SHORT).show();

} else{

Toast.makeText(getApplicationContext(), "not done",

Toast.LENGTH_SHORT).show();

}

Intent intent = new Intent(getApplicationContext(),MainActivity.class);

startActivity(intent);

}

}

}

}

以下是Database类 DBHelper.java 的内容

package com. example.sairamkrishna.myapplication;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Hashtable;

import android.content.ContentValues;

import android.content.Context;

import android.database.Cursor;

import android.database.DatabaseUtils;

import android.database.sqlite.SQLiteOpenHelper;

import android.database.sqlite.SQLiteDatabase;

public class DBHelper extends SQLiteOpenHelper {

public static final String DATABASE_NAME = "MyDBName.db";

public static final String CONTACTS_TABLE_NAME = "contacts";

public static final String CONTACTS_COLUMN_ID = "id";

public static final String CONTACTS_COLUMN_NAME = "name";

public static final String CONTACTS_COLUMN_EMAIL = "email";

public static final String CONTACTS_COLUMN_STREET = "street";

public static final String CONTACTS_COLUMN_CITY = "place";

public static final String CONTACTS_COLUMN_PHONE = "phone";

private HashMap hp;

public DBHelper(Context context) {

super(context, DATABASE_NAME , null, 1);

}

@Override

public void onCreate(SQLiteDatabase db) {

// TODO Auto-generated method stub

db.execSQL(

"create table contacts " +

"(id integer primary key, name text,phone text,email text, street text,place text)"

);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

// TODO Auto-generated method stub

db.execSQL("DROP TABLE IF EXISTS contacts");

onCreate(db);

}

public boolean insertContact (String name, String phone, String email, String street,String place) {

SQLiteDatabase db = this.getWritableDatabase();

ContentValues contentValues = new ContentValues();

contentValues.put("name", name);

contentValues.put("phone", phone);

contentValues.put("email", email);

contentValues.put("street", street);

contentValues.put("place", place);

db.insert("contacts", null, contentValues);

return true;

}

public Cursor getData(int id) {

SQLiteDatabase db = this.getReadableDatabase();

Cursor res = db.rawQuery( "select * from contacts where id="+id+"", null );

return res;

}

public int numberOfRows(){

SQLiteDatabase db = this.getReadableDatabase();

int numRows = (int) DatabaseUtils.queryNumEntries(db, CONTACTS_TABLE_NAME);

return numRows;

}

public boolean updateContact (Integer id, String name, String phone, String email, String street,String place) {

SQLiteDatabase db = this.getWritableDatabase();

ContentValues contentValues = new ContentValues();

contentValues.put("name", name);

contentValues.put("phone", phone);

contentValues.put("email", email);

contentValues.put("street", street);

contentValues.put("place", place);

db.update("contacts", contentValues, "id = ? ", new String[] { Integer.toString(id) } );

return true;

}

public Integer deleteContact (Integer id) {

SQLiteDatabase db = this.getWritableDatabase();

return db.delete("contacts",

"id = ? ",

new String[] { Integer.toString(id) });

}

public ArrayList getAllCotacts() {

ArrayList array_list = new ArrayList();

//hp = new HashMap();

SQLiteDatabase db = this.getReadableDatabase();

Cursor res = db.rawQuery( "select * from contacts", null );

res.moveToFirst();

while(res.isAfterLast() == false){

array_list.add(res.getString(res.getColumnIndex(CONTACTS_COLUMN_NAME)));

res.moveToNext();

}

return array_list;

}

}

以下是 res / layout / activity_main.xml 的内容

xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/textView"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true"

android:textSize="30dp"

android:text="Data Base" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Tutorials Point"

android:id="@+id/textView2"

android:layout_below="@+id/textView"

android:layout_centerHorizontal="true"

android:textSize="35dp"

android:textColor="#ff16ff01" />

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/imageView"

android:layout_below="@+id/textView2"

android:layout_centerHorizontal="true"

android:src="@drawable/logo"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/scrollView"

android:layout_below="@+id/imageView"

android:layout_alignParentLeft="true"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_alignParentRight="true"

android:layout_alignParentEnd="true">

android:id="@+id/listView1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:layout_centerVertical="true" >

以下是 res / layout / activity_display_contact.xml 的内容

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/scrollView1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

tools:context=".DisplayContact" >

android:layout_width="match_parent"

android:layout_height="370dp"

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:id="@+id/editTextName"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_marginTop="5dp"

android:layout_marginLeft="82dp"

android:ems="10"

android:inputType="text" >

android:id="@+id/editTextEmail"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/editTextStreet"

android:layout_below="@+id/editTextStreet"

android:layout_marginTop="22dp"

android:ems="10"

android:inputType="textEmailAddress" />

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignBottom="@+id/editTextName"

android:layout_alignParentLeft="true"

android:text="@string/name"

android:textAppearance="?android:attr/textAppearanceMedium" />

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/editTextCity"

android:layout_alignParentBottom="true"

android:layout_marginBottom="28dp"

android:onClick="run"

android:text="@string/save" />

android:id="@+id/textView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignBottom="@+id/editTextEmail"

android:layout_alignLeft="@+id/textView1"

android:text="@string/email"

android:textAppearance="?android:attr/textAppearanceMedium" />

android:id="@+id/textView5"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignBottom="@+id/editTextPhone"

android:layout_alignLeft="@+id/textView1"

android:text="@string/phone"

android:textAppearance="?android:attr/textAppearanceMedium" />

android:id="@+id/textView4"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_above="@+id/editTextEmail"

android:layout_alignLeft="@+id/textView5"

android:text="@string/street"

android:textAppearance="?android:attr/textAppearanceMedium" />

android:id="@+id/editTextCity"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignRight="@+id/editTextName"

android:layout_below="@+id/editTextEmail"

android:layout_marginTop="30dp"

android:ems="10"

android:inputType="text" />

android:id="@+id/textView3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignBaseline="@+id/editTextCity"

android:layout_alignBottom="@+id/editTextCity"

android:layout_alignParentLeft="true"

android:layout_toLeftOf="@+id/editTextEmail"

android:text="@string/country"

android:textAppearance="?android:attr/textAppearanceMedium" />

android:id="@+id/editTextStreet"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/editTextName"

android:layout_below="@+id/editTextPhone"

android:ems="10"

android:inputType="text" >

android:id="@+id/editTextPhone"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/editTextStreet"

android:layout_below="@+id/editTextName"

android:ems="10"

android:inputType="phone|text" />

以下是 res / value / string.xml 的内容

Address Book

Settings

Hello world!

Add New

Edit Contact

Delete Contact

DisplayContact

Name

Phone

Email

Street

City/State/Zip

Save Contact

Are you sure, you want to delete it.

Yes

No

以下是 res / menu / main_menu.xml 的内容

android:icon="@drawable/add"

android:title="@string/Add_New" >

以下是 res / menu / display_contact.xml 的内容

android:id="@+id/Edit_Contact"

android:orderInCategory="100"

android:title="@string/edit"/>

android:id="@+id/Delete_Contact"

android:orderInCategory="100"

android:title="@string/delete"/>

这是该项目的defomant AndroidManifest.xml

package="com.example.sairamkrishna.myapplication" >

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

android:name=".MainActivity"

android:label="@string/app_name" >

让我们尝试运行您的应用程序。我假设您已将实际的Android移动设备与计算机相关联。要从Android工作室运行应用程序,请打开项目的某个活动文件,然后单击

工具栏中的“运行” 图标。在开始申请之前,Android studio将显示以下窗口,以选择您要运行Android应用程序的选项。

选择您的移动设备作为选项,然后检查您的移动设备,该设备将显示以下屏幕 -

现在打开您的可选菜单,它将显示如下图像: 可选菜单出现在不同版本的不同位置

单击菜单屏幕的添加按钮以添加新联系人。它将显示以下屏幕

它将显示以下字段。请输入所需信息,然后单击保存联系人。它会带你回到主屏幕。

现在我们已经添加了联系人sai。为了查看您的数据库在哪里创建。打开你的Android工作室,连接你的手机。去 工具/ android /

android设备监视器 。现在浏览文件资源管理器选项卡。现在浏览此文件夹 / data / data /

/ databases 。

android 数据库的种类,Android SQLite数据库相关推荐

  1. 在 Android 应用程序中使用 SQLite 数据库以及怎么用

    part one : android SQLite 简单介绍 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库.它支持 SQL 语言,而且仅仅利用非常少的内存就有非常好的性能.此外它还是开 ...

  2. android模拟器的数据存放,Android模拟器在哪里存储SQLite数据库?

    Android模拟器在哪里存储SQLite数据库? 我正在开发一个将数据存储在SQLite数据库中的Android应用程序. 我的问题是,当您使用模拟器时,此数据库文件存储在文件系统中的哪个位置? 我 ...

  3. android打开sqlite数据库,Android:打开和关闭SQLite数据库

    我正在开发和android应用程序,我经常使用它访问本地数据库.这个数据库可以从不同的therads访问,所以我对数据库有一个协调问题.我使用以下open()和close()方法.Android:打开 ...

  4. 在Android中查看和管理sqlite数据库

    在Android中查看和管理sqlite数据库 在Android中可以使用Eclipse插件DDMS来查看,也可以使用Android工具包中的adb工具来查看.android项目中的sqlite数据库 ...

  5. Android内部自带的SQLite数据库操作dos命令

    1:什么叫做SQLite数据库 Android系统内核是Linux系统,Android系统很特殊,他自带了一个SQLite数据库,轻量型的一款嵌入式的数据库 它占用资源非常的低,在嵌入式设备中,可能只 ...

  6. android studio SQLScout插件查看sqlite数据库

    SQLScout (SQLite Support) SQLScout (SQLite Support) 是android studio集成开发工具中查看SQLite数据库的插件. 1.安装 file- ...

  7. Android 用户信息管理程序【SQLite数据库、多选框、单选按钮】

    创建一个名为"学号+姓名"的用户信息管理程序,该程序用于输入.保存.列表展示和选择删除. "用户信息管理"程序录入界面对应布局文件的图形化视图,如下图所示. 目 ...

  8. android 访问sqlite,android中访问已有的sqlite数据库

    推荐文章 每天进步记录一点点 话说经常性的操作svn出现各种问题,而度娘一直帮倒忙,是不是很手足无措. 有时问题还是要记录下来的.说不定还会有惊喜. 昨天遇到个问题,搜索了一下,发现第一条就是自己写的 ...

  9. Sql Server数据库数据导入到SQLite数据库中

    背景:Sql Serve数据库中有个表格A,想把数据导入到SQLite数据库中 工具下载地址:点击打开链接 用法: 原作者地址及下载地址:点击打开链接

最新文章

  1. KeyedVectors python 从词向量文件中快速生成{词:词向量}
  2. 18年你需要了解的15个人工智能统计数据
  3. Hibernate 3 入門
  4. 2021年计算机网络期末考试题,2021年计算机网络期末考试试题及答案-20210515145802.doc-原创力文档...
  5. python 串行线程终止后还会执行下一个吗_多线程笔记
  6. 高职高考要计算机证,高职高考的报名条件需要技能证书
  7. Typora下载及win10安装
  8. Switch视频转换器方案
  9. MCE | 打破 Western Blot 玄学操作
  10. html5 保存后退,Html5 页面后退并刷新
  11. 构建高并发高可用的电商平台架构实践(一)
  12. 电子实验室仪器使用大全
  13. spark算子详细介绍(v、k-v、vv类型)
  14. Win10将某个软件/文件添加到开始屏幕(磁贴)
  15. matlab mic系数_科学网—最大信息系数 (Maximal Information Coefficient, MIC)详解(1) - 彭勇的博文...
  16. flappy bird游戏源代码揭秘和下载后续---移植到html5网页浏览器
  17. 14个小方法巧除鞋臭脚臭
  18. 丁俊晖入交大,无悖于“读书无用”论
  19. python查找文件并重命名_python复制文件并重命名
  20. 所托非人勿怪人,忠人之事需灵变

热门文章

  1. Spring+Hibernate 实现不同域名访问同一项目,自定义Filter根据域名选择对应的数据源...
  2. AVX指令集函数列表中文翻译
  3. c语言入门自学宝典,c语言学习编程宝典下载-c语言学习编程宝典appv1.2 - 起点软件园...
  4. 计算机时代杂志,计算机时代杂志
  5. 云服务器加固系统,云服务器加固
  6. slidetoshutdown电脑滑动关机命令失效了怎么办?
  7. 用EasyX图形库画一个哆啦A梦
  8. 华为云桌面,助力企业效率办公
  9. 以太坊-入门基础(以太坊黄皮书学习)
  10. 6-2 找出大于num的最小素数 (16 分)