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

[经验分享] Android SQLite数据库的添 删 查 改

[复制链接]

尚未签到

发表于 2016-12-1 08:31:24 | 显示全部楼层 |阅读模式
首先要创建一个类,继承自SQLiteOpenHelper,用来打开数据库
  package com.SQLiteTest2;
  import android.content.Context;
  import android.database.sqlite.SQLiteDatabase;
  import android.database.sqlite.SQLiteDatabase.CursorFactory;
  import android.database.sqlite.SQLiteOpenHelper;
  public class MyOpenHelper extends SQLiteOpenHelper {
   public static final String DB_NAME = "student";
   public static final String TABLE_NAME = "student_information";
   public static final String ID = "_id";
   public static final String NUMBER = "number";
   public static final String NAME = "name";
   public MyOpenHelper(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 table if not exists "+TABLE_NAME+" ("
   + ID + " integer primary key,"
   + NUMBER + " varchar,"
   + NAME + " varchar)");
  
   }
   @Override
   public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
   // TODO Auto-generated method stub
   }
  }
  在onCreate()函数中,我创建一个表,用来存储学生的学号和姓名信息
  然后从UI上的TextEdit控件上获取数据
  <?xml version="1.0" encoding="utf-8"?>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   >
  <TextView
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:text="@string/enter"
   />
   <LinearLayout
   android:orientation="horizontal"
   android:id="@+id/LinearLayout01"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content">
   <TextView
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="@string/number"
   />
   <EditText
   android:id="@+id/number"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"></EditText>
   </LinearLayout>
  
   <LinearLayout
   android:orientation="horizontal"
   android:id="@+id/LinearLayout02"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content">
   <TextView
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="@string/name"
   />
   <EditText
   android:id="@+id/name"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"></EditText>
   </LinearLayout>
  <Button
   android:id="@+id/submit"
   android:text="@string/submit"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"></Button>
  <TextView
   android:id="@+id/IdLongitude"
   android:textSize="16px"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   />
  <TextView
   android:id="@+id/IdLatitude"
   android:textSize="16px"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   />
  </LinearLayout>
  接下来就是主窗体的代码部分了
DSC0000.jpg
  import static com.SQLiteTest2.MyOpenHelper.*;
  public class SQLiteTest2 extends Activity {
  MyOpenHelper myHelper;
   EditText [] textArray;
   Button btn_save;
   int [] textIds = {
   R.id.number,
   R.id.name
   };
  View.OnClickListener myListener = new View.OnClickListener() {
   @Override
   public void onClick(View v) { //保存按钮按下触发该事件
   String [] strArray = new String[textArray.length];
   for(int i = 0; i < strArray.length; i++){
   strArray = textArray.getText().toString().trim(); //获得用户输入的
  信息数组

   }
   insert(strArray);

   }

   };
   @Override
   public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);
   textArray = new EditText[textIds.length];
   for(int i=0;i<textIds.length;i++){
   textArray = (EditText)findViewById(textIds);
   }
   myHelper = new MyOpenHelper(this, MyOpenHelper.DB_NAME, null, 1);
   btn_save = (Button) findViewById(R.id.submit);
   btn_save.setOnClickListener(myListener);

   }
   public void insert(String [] strArray)
   {
   SQLiteDatabase db = myHelper.getWritableDatabase(); //获得数据库对象
   ContentValues values = new ContentValues();
   values.put(NUMBER, strArray[0]);
   values.put(NAME, strArray[1]);
   long count = db.insert(TABLE_NAME, ID, values); //插入数据
   db.close();
   if(count == -1){
   Toast.makeText(this, "插入失败!", Toast.LENGTH_SHORT).show();
   }
   else{
   Toast.makeText(this, "插入成功!", Toast.LENGTH_SHORT).show();
   }
   }
  }
  删除记录的函数
  public void deleteContact(int id){
   SQLiteDatabase db = myHelper.getWritableDatabase(); //获得数据库对象
   db.delete(TABLE_NAME, ID+"=?", new String[]{id+""});
   db.close();
   }

运维网声明 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-307899-1-1.html 上篇帖子: androd SQLite 自己写的数据库操作类 下篇帖子: Android SQLite 开发教程(3): 创建数据库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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