设为首页 收藏本站
查看: 1283|回复: 0

[经验分享] SQLite数据库使用

[复制链接]

尚未签到

发表于 2016-11-30 06:33:18 | 显示全部楼层 |阅读模式
   DSC0000.gif
  
DSC0001.gif

  
  使用System.out显示结果
  main.xml
<?xml version="1.0" encoding="utf-8"?><ScrollView xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><Button android:id="@+id/createButton"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center"android:text="创建数据库"/><Button android:id="@+id/createTableButton"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center"android:text="创建表"/><Buttonandroid:id="@+id/insertButton" android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center"android:text="插入一条数据" /><Button android:id="@+id/deleteButton"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center"android:text="删除一条数据(依据姓名)" /><Button android:id="@+id/updateButton"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center"android:text="修改年龄" /><Button android:id="@+id/queryAllButton"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center"android:text="查询所有数据" /><Button android:id="@+id/queryWithConditionButton"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center"android:text="查询某一数据" /><Button android:id="@+id/dropButton"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center"android:text="删除表" /><Button android:id="@+id/closeButton"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center"android:text="关闭数据库" /><EditTextandroid:id="@+id/nameEditText"android:layout_marginTop="10dp"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center"android:hint="输入姓名"/><EditTextandroid:id="@+id/ageEditText"android:layout_marginTop="10dp"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center"android:numeric="integer"android:hint="输入年龄"/><EditText android:id="@+id/proEditText"android:layout_marginTop="10dp"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center"android:hint="输入职业"/></LinearLayout></ScrollView>  
SQLiteExampleActivity.java
package com.zeph.android.sqlite.example;import android.app.Activity;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class SQLiteExampleActivity extends Activity {private Button createButton;private Button createTableButton;private Button insertButton;private Button deleteButton;private Button updateButton;private Button queryAllButton;private Button queryWithConditionButton;private Button dropButton;private Button closeButton;private EditText nameEditText;private EditText ageEditText;private SQLiteDatabase mySqLiteDatabase;private static final String DB_CREATE = "CREATE TABLE Persons(Id_P int PRIMARY KEY,Name varchar(255) NOT NULL,Age int NOT NULL,Professional varchar(255))";@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);createButton = (Button) findViewById(R.id.createButton);createTableButton = (Button) findViewById(R.id.createTableButton);insertButton = (Button) findViewById(R.id.insertButton);deleteButton = (Button) findViewById(R.id.deleteButton);updateButton = (Button) findViewById(R.id.updateButton);queryAllButton = (Button) findViewById(R.id.queryAllButton);queryWithConditionButton = (Button) findViewById(R.id.queryWithConditionButton);dropButton = (Button) findViewById(R.id.dropButton);closeButton = (Button) findViewById(R.id.closeButton);nameEditText = (EditText) findViewById(R.id.nameEditText);ageEditText = (EditText) findViewById(R.id.ageEditText);createButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {SQLDataBaseHelper helper = new SQLDataBaseHelper(getApplicationContext(), "myDataBase", 1);// 创建或打开myDataBase,其中的SQLDataBaseHelper类的onCreate方法只会在第一次创建时使用,也就是说,创建数据库时,会同时创建一张表mySqLiteDatabase = helper.getWritableDatabase();Toast.makeText(getApplicationContext(), "创建数据库",Toast.LENGTH_SHORT).show();}});createTableButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {mySqLiteDatabase.execSQL(DB_CREATE);// 创建表}});insertButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (mySqLiteDatabase != null) {if (!nameEditText.getText().toString().equals("")&& !ageEditText.getText().toString().equals("")) {ContentValues values = new ContentValues();int age = Integer.parseInt(ageEditText.getText().toString());values.put("Name", nameEditText.getText().toString());values.put("Age", age);mySqLiteDatabase.insert("Persons", null, values);} else {Toast.makeText(getApplicationContext(), "姓名或年龄为空",Toast.LENGTH_SHORT).show();}} else {Toast.makeText(getApplicationContext(), "请首先创建或打开数据库",Toast.LENGTH_SHORT).show();}}});deleteButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (mySqLiteDatabase != null) {if (!nameEditText.getText().toString().equals("")) {mySqLiteDatabase.execSQL("DELETE FROM Persons WHERE Name='"+ nameEditText.getText().toString()+ "'");Toast.makeText(getApplicationContext(), "删除",Toast.LENGTH_SHORT).show();} else {Toast.makeText(getApplicationContext(), "姓名不能为空",Toast.LENGTH_SHORT).show();}} else {Toast.makeText(getApplicationContext(), "请首先创建或打开数据库",Toast.LENGTH_SHORT).show();}}});updateButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (mySqLiteDatabase != null) {if (!nameEditText.getText().toString().equals("")&& !ageEditText.getText().toString().equals("")) {ContentValues values = new ContentValues();values.put("Age", Integer.parseInt(ageEditText.getText().toString()));mySqLiteDatabase.update("Persons", values, "Name='"+ nameEditText.getText().toString()+ "'", null);Toast.makeText(getApplicationContext(), "修改",Toast.LENGTH_SHORT).show();} else {Toast.makeText(getApplicationContext(),"姓名和年龄不能为空不能为空", Toast.LENGTH_SHORT).show();}} else {Toast.makeText(getApplicationContext(), "请首先创建或打开数据库",Toast.LENGTH_SHORT).show();}}});queryWithConditionButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (mySqLiteDatabase != null) {if (!nameEditText.getText().toString().equals("")) {Cursor cursor = mySqLiteDatabase.rawQuery("SELECT * FROM Persons WHERE Name='"+ nameEditText.getText().toString()+ "'", null);if (cursor != null) {if (cursor.moveToFirst()) {do {System.out.println(cursor.getString(1)+ " " + cursor.getInt(2));} while (cursor.moveToNext());}}} else {Toast.makeText(getApplicationContext(), "姓名不能为空",Toast.LENGTH_SHORT).show();}} else {Toast.makeText(getApplicationContext(), "请首先创建或打开数据库",Toast.LENGTH_SHORT).show();}}});queryAllButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (mySqLiteDatabase != null) {Cursor cursor = mySqLiteDatabase.rawQuery("SELECT * FROM Persons", null);if (cursor != null) {if (cursor.moveToFirst()) {do {System.out.println(cursor.getString(1) + " "+ cursor.getInt(2));} while (cursor.moveToNext());}}} else {Toast.makeText(getApplicationContext(), "请首先创建或打开数据库",Toast.LENGTH_SHORT).show();}}});dropButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (mySqLiteDatabase != null) {mySqLiteDatabase.execSQL("DROP TABLE IF EXISTS Persons");Toast.makeText(getApplicationContext(), "删除表",Toast.LENGTH_SHORT).show();} else {Toast.makeText(getApplicationContext(), "请首先创建或打开数据库",Toast.LENGTH_SHORT).show();}}});closeButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (mySqLiteDatabase != null) {mySqLiteDatabase.close();Toast.makeText(getApplicationContext(), "关闭数据库",Toast.LENGTH_SHORT).show();}}});}/*** 当需要创建或打开一个数据库并获得数据库对象时,首先根据指定的文件名创建一个辅助对象, 然后调用该对象的getWritableDatabase 或* getReadableDatabase方法 获得SQLiteDatabase 对象。调用getReadableDatabase* 方法返回的并不总是只读数据库对象,一般来说该方法和getWriteableDatabase* 方法的返回情况相同,只有在数据库仅开放只读权限或磁盘已满时才会返回一个只读的数据库对象。* * @author Ben Zeph* */private class SQLDataBaseHelper extends SQLiteOpenHelper {private static final String DB_CREATE = "CREATE TABLE Persons(Id_P int PRIMARY KEY,Name varchar(255) NOT NULL,Age int NOT NULL,Professional varchar(255))";/*** 得到一个SQLiteOpenHelper的对象,* 调用该对象的getWritableDatabase和getReadableDatabase方法* ,可以得到所创建SQLiteDatabase。* * @param context* @param name* @param factory* @param version*/public SQLDataBaseHelper(Context context, String name,CursorFactory factory, int version) {super(context, name, factory, version);}/*** * @param context* @param name* @param version*/public SQLDataBaseHelper(Context context, String name, int version) {super(context, name, null, version);}/*** 当数据库被首次创建时执行该方法,一般将创建表等初始化操作在该方法中执行。*/@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL(DB_CREATE);// 创建数据库}/*** 当打开数据库时传入的版本号与当前的版本号不同时会调用该方法。*/@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {db.execSQL("DROP TABLE IF EXISTS notes");onCreate(db);}}}  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-307291-1-1.html 上篇帖子: 使用sqlite注意事项 下篇帖子: SQLite数据表的创建(6)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表