zoukankan      html  css  js  c++  java
  • android数据库简单操作

    1.DbOpenHelper

    package com.example.dbtest.dbHelper;
    
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    
    //继承SQLiteOpenHelper类
    public class DbOpenHelper extends SQLiteOpenHelper {
    
        public DbOpenHelper(Context context) {
            //Context 上下文
            //name 数据库名
            //CursorFactory 游标工厂模式 当为null时 使用默认值
            //version 数据库版本 版本号从1开始
            super(context, "test.db", null, 1);
        }
    
        /**
         * 第一次访问数据库 执行方法
         * */
        @Override
        public void onCreate(SQLiteDatabase db) {
            //创建表结构
            String sql = "create table person(id integer primary key autoincrement,name varchar(20),age int,phone varchar(11))";
            db.execSQL(sql);
    
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            
    
        }
        
    
    }

    2.实体

    package com.example.dbtest.domain;
    
    public class Person {
        private int id;
        private String name;
        private int age;
        private String phone;
        
        public Person(){}
        
        public Person(int id, String name, int age, String phone) {
            super();
            this.id = id;
            this.name = name;
            this.age = age;
            this.phone = phone;
        }
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public String getPhone() {
            return phone;
        }
        public void setPhone(String phone) {
            this.phone = phone;
        }
    
        @Override
        public String toString() {
            return "个人信息[id=" + id + ", name=" + name + ", age=" + age
                    + ", phone=" + phone + "]";
        }
        
        
    
    }

    3.personDao

    package com.example.dbtest.dao;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    
    import com.example.dbtest.dbHelper.DbOpenHelper;
    import com.example.dbtest.domain.Person;
    
    public class PersonDao {
        
        private DbOpenHelper helper;
        
        public PersonDao(Context context)
        {
            helper = new DbOpenHelper(context);
        }
        
        //添加一条记录
        public void add(Person p)
        {
            SQLiteDatabase db = helper.getWritableDatabase();
            String sql = "insert into person(name,age,phone) values(?,?,?)";
            db.execSQL(sql, new Object[]{p.getName(),p.getAge(),p.getPhone()});
            
        }
        
        //修改一条记录
        public void update(Person p)
        {
            SQLiteDatabase db = helper.getWritableDatabase();
            String sql = "update person set age=?,phone=? where name=?";
            db.execSQL(sql, new Object[]{p.getAge(),p.getPhone(),p.getName()});
            
        }
        
        //删除一条记录
        public void delete(String name)
        {
            SQLiteDatabase db = helper.getWritableDatabase();
            String sql = "delete from person where name=?";
            db.execSQL(sql,new Object[]{name});
        }
        
        public Person findByName(String name)
        {
            
            SQLiteDatabase db = helper.getReadableDatabase();
            String sql = "select * from person where name=?";
            Cursor cursor = db.rawQuery(sql, new String[]{name});
            Person p = null;
            while(cursor.moveToNext())
            {
                int id = cursor.getInt(cursor.getColumnIndex("id"));
                String phone = cursor.getString(cursor.getColumnIndex("phone"));
                int age = cursor.getInt(cursor.getColumnIndex("age"));
                p = new Person(id,name,age,phone);
            }
            return p;
        }
        
        
        public List<Person> findAll(String name)
        {
            
            SQLiteDatabase db = helper.getReadableDatabase();
            String sql = "select * from person where name=?";
            Cursor cursor = db.rawQuery(sql, new String[]{name});
            List<Person> list = new ArrayList();
            while(cursor.moveToNext())
            {
                int id = cursor.getInt(cursor.getColumnIndex("id"));
                String phone = cursor.getString(cursor.getColumnIndex("phone"));
                int age = cursor.getInt(cursor.getColumnIndex("age"));
                Person p = new Person(id,name,age,phone);
                list.add(p);
            }
            return list;
        }
        
        
    }

    4.activity.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        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"
        tools:context="com.example.dbtest.MainActivity" >
    
        <Button
            android:id="@+id/btn_createDB"
            android:onClick="createDB"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="创建数据库" />
    
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/btn_createDB"
            android:layout_below="@+id/btn_createDB"
            android:text="姓名" />
    
        <EditText
            android:id="@+id/et_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/textView1"
            android:layout_below="@+id/textView1"
            android:layout_marginLeft="21dp"
            android:layout_marginTop="24dp"
            android:ems="10"
        />
        
      <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/btn_createDB"
            android:layout_below="@+id/et_name"
            android:text="电话" />
    
        <EditText
            android:id="@+id/et_phone"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/textView2"
            android:layout_below="@+id/textView2"
            android:layout_marginLeft="21dp"
            android:layout_marginTop="24dp"
            android:ems="10"
        />
        
    <Button
            android:id="@+id/btn_save"
            android:onClick="save"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/et_phone"
            android:text="保存" />
    <Button
            android:id="@+id/btn_update"
            android:onClick="update"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/btn_save"
            android:text="修改" />
    <Button
            android:id="@+id/btn_find"
            android:onClick="findOne"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/btn_update"
            android:text="查询" />
    <Button
            android:id="@+id/btn_delete"
            android:onClick="delete"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/btn_find"
            android:text="删除" />
    
    
    </RelativeLayout>

    5.activity对应点击事件

    package com.example.dbtest;
    
    import android.os.Bundle;
    import android.support.v7.app.ActionBarActivity;
    import android.text.TextUtils;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.Toast;
    
    import com.example.dbtest.dao.PersonDao;
    import com.example.dbtest.dbHelper.DbOpenHelper;
    import com.example.dbtest.domain.Person;
    
    
    public class MainActivity extends ActionBarActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
        
        
        public void createDB(View v)
        {
            DbOpenHelper db = new DbOpenHelper(this);
            //该句才真正创建数据库
            db.getWritableDatabase();
            Toast.makeText(this, "数据库创建成功", 0).show();
            
        }
        
        public void save(View v)
        {
            EditText nameText = (EditText)this.findViewById(R.id.et_name);
            EditText phoneText = (EditText)this.findViewById(R.id.et_phone);
            String name = nameText.getText().toString();
            String phone = phoneText.getText().toString();
            if(TextUtils.isEmpty(name) || TextUtils.isEmpty(phone))
            {
                Toast.makeText(this, "姓名和电话不能为空", 0).show();
                return;
            }
            PersonDao dao = new PersonDao(this);
            Person p = new Person();
            p.setName(name);
            p.setPhone(phone);
            dao.add(p);
            Toast.makeText(this, "保存成功", 0).show();
            
        }
        
        public void update(View v)
        {
            EditText nameText = (EditText)this.findViewById(R.id.et_name);
            EditText phoneText = (EditText)this.findViewById(R.id.et_phone);
            String name = nameText.getText().toString();
            String phone = phoneText.getText().toString();
            
            PersonDao dao = new PersonDao(this);
            Person p = new Person();
            p.setName(name);
            p.setPhone(phone);
            dao.update(p);
            Toast.makeText(this, "修改成功", 0).show();
            
        }
        
        public void delete(View v)
        {
            EditText nameText = (EditText)this.findViewById(R.id.et_name);
            EditText phoneText = (EditText)this.findViewById(R.id.et_phone);
            String name = nameText.getText().toString();
            String phone = phoneText.getText().toString();
            
            PersonDao dao = new PersonDao(this);
            dao.delete(name);
            Toast.makeText(this, "删除成功", 0).show();
            
        }
    
    }
  • 相关阅读:
    浅谈随机化算法
    SPSS问题
    羽毛球技术
    三大线性排序之桶排序
    Java产生随机数
    Java堆栈详解
    三大线性排序之基数排序
    指针 和 数组
    复制构造函数 与 赋值函数 的区别
    【c++】类中的const成员
  • 原文地址:https://www.cnblogs.com/zoro-zero/p/3933879.html
Copyright © 2011-2022 走看看