android 数据库的种类,Android SQLite数据库
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
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数据库相关推荐
- 在 Android 应用程序中使用 SQLite 数据库以及怎么用
part one : android SQLite 简单介绍 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库.它支持 SQL 语言,而且仅仅利用非常少的内存就有非常好的性能.此外它还是开 ...
- android模拟器的数据存放,Android模拟器在哪里存储SQLite数据库?
Android模拟器在哪里存储SQLite数据库? 我正在开发一个将数据存储在SQLite数据库中的Android应用程序. 我的问题是,当您使用模拟器时,此数据库文件存储在文件系统中的哪个位置? 我 ...
- android打开sqlite数据库,Android:打开和关闭SQLite数据库
我正在开发和android应用程序,我经常使用它访问本地数据库.这个数据库可以从不同的therads访问,所以我对数据库有一个协调问题.我使用以下open()和close()方法.Android:打开 ...
- 在Android中查看和管理sqlite数据库
在Android中查看和管理sqlite数据库 在Android中可以使用Eclipse插件DDMS来查看,也可以使用Android工具包中的adb工具来查看.android项目中的sqlite数据库 ...
- Android内部自带的SQLite数据库操作dos命令
1:什么叫做SQLite数据库 Android系统内核是Linux系统,Android系统很特殊,他自带了一个SQLite数据库,轻量型的一款嵌入式的数据库 它占用资源非常的低,在嵌入式设备中,可能只 ...
- android studio SQLScout插件查看sqlite数据库
SQLScout (SQLite Support) SQLScout (SQLite Support) 是android studio集成开发工具中查看SQLite数据库的插件. 1.安装 file- ...
- Android 用户信息管理程序【SQLite数据库、多选框、单选按钮】
创建一个名为"学号+姓名"的用户信息管理程序,该程序用于输入.保存.列表展示和选择删除. "用户信息管理"程序录入界面对应布局文件的图形化视图,如下图所示. 目 ...
- android 访问sqlite,android中访问已有的sqlite数据库
推荐文章 每天进步记录一点点 话说经常性的操作svn出现各种问题,而度娘一直帮倒忙,是不是很手足无措. 有时问题还是要记录下来的.说不定还会有惊喜. 昨天遇到个问题,搜索了一下,发现第一条就是自己写的 ...
- Sql Server数据库数据导入到SQLite数据库中
背景:Sql Serve数据库中有个表格A,想把数据导入到SQLite数据库中 工具下载地址:点击打开链接 用法: 原作者地址及下载地址:点击打开链接
最新文章
- KeyedVectors python 从词向量文件中快速生成{词:词向量}
- 18年你需要了解的15个人工智能统计数据
- Hibernate 3 入門
- 2021年计算机网络期末考试题,2021年计算机网络期末考试试题及答案-20210515145802.doc-原创力文档...
- python 串行线程终止后还会执行下一个吗_多线程笔记
- 高职高考要计算机证,高职高考的报名条件需要技能证书
- Typora下载及win10安装
- Switch视频转换器方案
- MCE | 打破 Western Blot 玄学操作
- html5 保存后退,Html5 页面后退并刷新
- 构建高并发高可用的电商平台架构实践(一)
- 电子实验室仪器使用大全
- spark算子详细介绍(v、k-v、vv类型)
- Win10将某个软件/文件添加到开始屏幕(磁贴)
- matlab mic系数_科学网—最大信息系数 (Maximal Information Coefficient, MIC)详解(1) - 彭勇的博文...
- flappy bird游戏源代码揭秘和下载后续---移植到html5网页浏览器
- 14个小方法巧除鞋臭脚臭
- 丁俊晖入交大,无悖于“读书无用”论
- python查找文件并重命名_python复制文件并重命名
- 所托非人勿怪人,忠人之事需灵变
热门文章
- Spring+Hibernate 实现不同域名访问同一项目,自定义Filter根据域名选择对应的数据源...
- AVX指令集函数列表中文翻译
- c语言入门自学宝典,c语言学习编程宝典下载-c语言学习编程宝典appv1.2 - 起点软件园...
- 计算机时代杂志,计算机时代杂志
- 云服务器加固系统,云服务器加固
- slidetoshutdown电脑滑动关机命令失效了怎么办?
- 用EasyX图形库画一个哆啦A梦
- 华为云桌面,助力企业效率办公
- 以太坊-入门基础(以太坊黄皮书学习)
- 6-2 找出大于num的最小素数 (16 分)