先看效果图:
PersonDao1.java
package mm.shandong.com.testsqlsqllite.dao; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import java.util.ArrayList; import java.util.List; import mm.shandong.com.testsqlsqllite.entity.Person; import mm.shandong.com.testsqlsqllite.util.StudySQLiteOpenHelper; /** * Created by buyadong on 2016/8/7. */ public class PersonDao1 { Context context; StudySQLiteOpenHelper studySQLiteOpenHelper; public PersonDao1(Context context) { this.context = context; studySQLiteOpenHelper = new StudySQLiteOpenHelper(context, "androidStudy.db", 7); } public void addPerson(Person person) { SQLiteDatabase db = studySQLiteOpenHelper.getWritableDatabase(); String sql = "insert into person(_id,name,sex,age,code) values(null,?,?,?,?)"; db.execSQL(sql,new Object[]{person.getName(), person.getSex(), person.getAge(), person.getCode()}); } public void deletePerson(Person person) { SQLiteDatabase db = studySQLiteOpenHelper.getWritableDatabase(); String sql = "delete from person where _id=?"; db.execSQL(sql, new Object[]{person.get_id()}); } public void updatePerson(Person person) { SQLiteDatabase db = studySQLiteOpenHelper.getWritableDatabase(); String sql = "update person set name=?,sex=?,age=?,code=? where _id=?"; db.execSQL(sql, new Object[]{person.getName(), person.getSex(), person.getAge(), person.getCode(), person.get_id()}); } public List<Person> getAllPerson() { List<Person> persons = new ArrayList<Person>(); SQLiteDatabase db = studySQLiteOpenHelper.getWritableDatabase(); String sql = "select * from person"; Cursor cursor = db.rawQuery(sql, null); while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex("name")); String sex = cursor.getString(cursor.getColumnIndex("sex")); int age = cursor.getInt(cursor.getColumnIndex("age")); String code = cursor.getString(cursor.getColumnIndex("code")); int _id = cursor.getInt(cursor.getColumnIndex("_id")); Person person = new Person(name, sex, age, code); person.set_id(_id); persons.add(person); } return persons; } }
Person实体类:
package mm.shandong.com.testsqlsqllite.entity; import java.io.Serializable; /** * Created by 安卓无忧 on 2016/7/27. */ public class Person implements Serializable{ private String name; private int age; private String code; private String sex; public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } private String first_letter; private int _id; public void set_id(int _id) { this._id = _id; } public int get_id() { return _id; } public void setFirst_letter(String first_letter) { this.first_letter = first_letter; } public String getFirst_letter() { return first_letter; } public Person(){ } public Person(String name, int age, String code){ this.name=name; this.age=age; this.code=code; } public Person(String name,String sex, int age, String code){ this.name=name; this.age=age; this.code=code; this.sex=sex; } @Override public String toString() { return name +" "+age+" "+code; } public void setAge(int age) { this.age = age; } public void setCode(String code) { this.code = code; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public String getCode() { return code; } public String getName() { return name; } }
StudySQLiteOpenHelper
package mm.shandong.com.testsqlsqllite.util; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /** * Created by 安卓无忧 on 2016/7/10. */ public class StudySQLiteOpenHelper extends SQLiteOpenHelper { String dataBase_name; Context context; String create_TABLE_sql="create table person(_id INTEGER PRIMARY KEY AUTOINCREMENT," + "name varchar(30),age integer,sex varchar(30),code varchar(30))" ; String delete_Sql="delete from person"; public StudySQLiteOpenHelper(Context context, String name, int verson){ super(context,name,null,verson); this.context=context; } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { sqLiteDatabase.execSQL(create_TABLE_sql); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { } }
activity
package mm.shandong.com.testsqlsqllite; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.text.TextUtils; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.EditText; import android.widget.ListView; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import mm.shandong.com.testsqlsqllite.dao.PersonDao1; import mm.shandong.com.testsqlsqllite.entity.Person; public class TestSQLSqlLiteActivity extends AppCompatActivity { ListView listView; List<Person> persons; PersonDao1 personDao; BaseAdapter personAdapter; Map<String,Boolean> radioStates; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test_sqlsql_lite); radioStates=new HashMap<String,Boolean>(); personDao=new PersonDao1(this); listView= (ListView) findViewById(R.id.listView); persons=personDao.getAllPerson(); initListView(); } public void initListView(){ personAdapter=new BaseAdapter() { @Override public int getCount() { return persons.size(); } @Override public Object getItem(int position) { return persons.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View view, ViewGroup viewGroup) { view=getLayoutInflater().inflate(R.layout.item_sqlite_listview,null); TextView textViewPerson_name= (TextView) view.findViewById(R.id.textViewPerson_name); TextView textViewPerson_sex= (TextView) view.findViewById(R.id.textViewPerson_sex); TextView textViewPerson_code=(TextView)view.findViewById(R.id.textViewPerson_code); TextView textViewPerson_age= (TextView) view.findViewById(R.id.textViewPerson_age); final Person person= (Person) getItem(position); textViewPerson_name.setText(person.getName()); textViewPerson_age.setText(person.getAge()+""); textViewPerson_sex.setText(person.getSex()); textViewPerson_code.setText(person.getCode()); RadioButton radioButton= (RadioButton) view.findViewById(R.id.radioButton); radioButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(view instanceof RadioButton) { RadioButton radioButton = (RadioButton) view; if (radioButton.isChecked()) { radioStates.put(String.valueOf(position), true); for (String key : radioStates.keySet()) { if (!key.equals(String.valueOf(position))) { radioStates.put(key, false); } } notifyDataSetChanged(); } } } } ); Boolean tempState=radioStates.get(String.valueOf(position)); if(tempState!=null&&tempState){ radioButton.setChecked(true); view.setBackgroundColor(Color.BLUE); }else{ radioButton.setChecked(false); view.setBackgroundColor(Color.WHITE); } return view; } }; listView.setAdapter(personAdapter); } public void addPerson(View view){ AlertDialog.Builder builder= new AlertDialog.Builder(this); builder.setTitle("新增用户").create(); View childView=getLayoutInflater().inflate(R.layout.layout_sqlite_alert,null); builder.setView(childView); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Field field = null; try { field = dialogInterface.getClass().getSuperclass().getDeclaredField("mShowing"); field.setAccessible(true); field.set(dialogInterface, true); } catch (Exception e) { e.printStackTrace(); } } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { try { Field field = dialogInterface.getClass().getSuperclass().getDeclaredField("mShowing"); field.setAccessible(true); field.set(dialogInterface,false); AlertDialog ad; if(dialogInterface instanceof AlertDialog){ ad= (AlertDialog) dialogInterface; EditText editViewPerson_name= (EditText) ad.findViewById(R.id.editViewPerson_name); EditText editViewPerson_code= (EditText) ad.findViewById(R.id.editViewPerson_code); EditText editViewPerson_age= (EditText) ad.findViewById(R.id.editViewPerson_age); RadioGroup radioGroupSex= (RadioGroup) ad.findViewById(R.id.radioGroupSex); if(TextUtils.isEmpty(editViewPerson_name.getText().toString())){ Toast.makeText(TestSQLSqlLiteActivity.this, "姓名不能为空",Toast.LENGTH_SHORT).show(); return; } if(TextUtils.isEmpty(editViewPerson_code.getText().toString())){ Toast.makeText(TestSQLSqlLiteActivity.this, "编号不能为空",Toast.LENGTH_SHORT).show(); return; } if(TextUtils.isEmpty(editViewPerson_age.getText().toString())){ Toast.makeText(TestSQLSqlLiteActivity.this, "年龄不能为空",Toast.LENGTH_SHORT).show(); return; } Person person=new Person(); person.setAge(Integer.parseInt(editViewPerson_age.getText().toString())); person.setName(editViewPerson_name.getText().toString()); person.setCode(editViewPerson_code.getText().toString()); RadioButton radioButton= (RadioButton) radioGroupSex. findViewById(radioGroupSex.getCheckedRadioButtonId()); person.setSex(radioButton.getText().toString()); personDao.addPerson(person); persons=personDao.getAllPerson(); radioStates=new HashMap<String,Boolean>(); personAdapter.notifyDataSetChanged(); field.set(dialogInterface,true); } } catch (Exception e) { e.printStackTrace(); } } }); builder.show(); } public void deletePerson(View view){ int position=-1; for(int i=0;i<listView.getChildCount();i++){ View childView=listView.getChildAt(i); RadioButton radioButton= (RadioButton) childView.findViewById(R.id.radioButton); if(radioButton.isChecked()){ position=i; break; } } if(position!=-1){ Person person= persons.get(position); personDao.deletePerson(person); persons=personDao.getAllPerson(); radioStates=new HashMap<String,Boolean>(); personAdapter.notifyDataSetChanged(); }else{ Toast.makeText(this,"请选择要删除的行",Toast.LENGTH_SHORT); } } public void updatePerson(View view){ int position=-1; for(int i=0;i<listView.getChildCount();i++){ View childView=listView.getChildAt(i); RadioButton radioButton= (RadioButton) childView.findViewById(R.id.radioButton); if(radioButton.isChecked()){ position=i; break; } } if(position!=-1){ final Person person= persons.get(position); AlertDialog.Builder builder= new AlertDialog.Builder(this); builder.setTitle("修改用户").create(); View childView=getLayoutInflater().inflate(R.layout.layout_sqlite_alert,null); EditText editViewPerson_name= (EditText) childView.findViewById(R.id.editViewPerson_name); EditText editViewPerson_code= (EditText) childView.findViewById(R.id.editViewPerson_code); EditText editViewPerson_age= (EditText) childView.findViewById(R.id.editViewPerson_age); RadioGroup radioGroupSex= (RadioGroup) childView.findViewById(R.id.radioGroupSex); editViewPerson_name.setText(person.getName()); editViewPerson_age.setText(String.valueOf(person.getAge())); editViewPerson_code.setText(person.getCode()); if(person.getSex().equals("男")){ ((RadioButton)radioGroupSex.getChildAt(0)).setChecked(true); }else{ ((RadioButton)radioGroupSex.getChildAt(1)).setChecked(true); } builder.setView(childView); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { try { Field field = dialogInterface.getClass().getSuperclass().getDeclaredField("mShowing"); field.setAccessible(true); field.set(dialogInterface,false); AlertDialog ad; if(dialogInterface instanceof AlertDialog){ ad= (AlertDialog) dialogInterface; EditText editViewPerson_name= (EditText) ad.findViewById(R.id.editViewPerson_name); EditText editViewPerson_age= (EditText) ad.findViewById(R.id.editViewPerson_age); EditText editViewPerson_code= (EditText) ad.findViewById(R.id.editViewPerson_code); RadioGroup radioGroupSex= (RadioGroup) ad.findViewById(R.id.radioGroupSex); if(TextUtils.isEmpty(editViewPerson_name.getText().toString())){ Toast.makeText(TestSQLSqlLiteActivity.this, "姓名不能为空",Toast.LENGTH_SHORT).show(); return; } if(TextUtils.isEmpty(editViewPerson_age.getText().toString())){ Toast.makeText(TestSQLSqlLiteActivity.this, "年龄不能为空",Toast.LENGTH_SHORT).show(); return; } person.setAge(Integer.parseInt(editViewPerson_age.getText().toString())); person.setName(editViewPerson_name.getText().toString()); RadioButton radioButton= (RadioButton) radioGroupSex. findViewById(radioGroupSex.getCheckedRadioButtonId()); person.setSex(radioButton.getText().toString()); person.setCode(editViewPerson_code.getText().toString()); personDao.updatePerson(person); persons=personDao.getAllPerson(); radioStates=new HashMap<String,Boolean>(); personAdapter.notifyDataSetChanged(); field.set(dialogInterface,true); } } catch (Exception e) { e.printStackTrace(); } } }); builder.show(); }else{ Toast.makeText(this,"请选择要删除的行",Toast.LENGTH_SHORT); } } }
布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:orientation="vertical"> <LinearLayout android:id="@+id/linearLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="addPerson" android:text="新增" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="deletePerson" android:text="删除" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="updatePerson" android:text="修改" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:text="姓名" /> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:text="编号" /> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:text="年龄" /> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:text="性别" /> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:text="请选择" /> </LinearLayout> <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
如果想要源码,请留下邮箱。
Demo下载
最后,以上例子都来源与安卓无忧,请去应用宝或者豌豆荚下载:http://android.myapp.com/myapp/detail.htm?apkName=com.shandong.mm.androidstudy,源码例子文档一网打尽。
相关推荐
SQLite 是一个轻量级的、开源的嵌入式...以上就是 SQLite 增删改查的基本操作。在实际应用中,你可能还需要学习更多高级特性,如事务处理、索引、视图等。通过实践,你可以更好地理解和掌握 SQLite 数据库的使用。
SQLite支持SQL标准,包括了增、删、改、查(CRUD)等基本操作。下面我们将详细探讨这四个方面的内容,基于提供的四个示例文件`delete.c`、`query.c`、`insert.c`和`opendbsqlite.c`。 1. **创建数据库和表** 在...
本教程将通过一个名为"SqliteTestDemo"的示例项目,深入讲解如何在Android中进行SQLite数据库的增、删、改、查操作。 首先,我们需要创建一个SQLite数据库。在Android中,我们通常会创建一个`SQLiteOpenHelper`的...
android开发 sqlite增、删、改、查。(完整代码实例),以及对数据库文件的复制。
本篇将重点介绍如何使用C#语言进行SQLite3的增删改查操作,这对于初学者来说是一次极好的实践机会。 首先,我们要理解C#与SQLite3的集成。C#通过SQLite的.NET数据提供程序(System.Data.SQLite)来与SQLite交互。...
在这个"android的sqlite增删改查示例"中,我们将深入探讨如何在Android应用中集成SQLite进行基本的数据操作。 首先,Android SDK提供了一个SQLiteOpenHelper类,它是所有SQLite操作的基础。这个类负责创建、升级和...
为了实现增删改查的功能,我们需要编写以下关键方法: 1. **添加**:创建一个新的对象,设置其属性,然后调用SQLite管理类的`insertUser:`方法,将对象转换为SQL语句并执行。 2. **修改**:获取选中对象,更新其...
在这个“SQLite增删改查案例”中,我们将深入探讨如何在Android环境下利用SQLite进行数据操作。 1. **SQLite数据库创建**: 在Android中,我们通常通过继承`SQLiteOpenHelper`类来创建和管理SQLite数据库。这个类...
本实例将详细讲解如何在Android中进行SQLite数据库的增删改查(CRUD)操作。 **创建SQLite数据库** 首先,我们需要创建一个SQLite数据库。在Android中,我们通常通过继承`SQLiteOpenHelper`类来实现。这个类提供了...
以上就是创建SQLite增删改查工具类的基本步骤。在实际应用中,你可能需要根据具体需求对这些方法进行扩展,比如添加查询单个记录、按条件查询等。此外,为了保持代码的整洁和可维护性,可以考虑将SQL语句封装到常量...
sqlite增删改查
这个"Android操作数据库SQLite增删改查demo"应该包含了创建数据库、定义表、插入数据、查询数据、更新数据和删除数据的基本操作,以及一些最佳实践。对于初学者来说,这是一个很好的起点,有助于理解和掌握Android中...
在这个"sqlite增删改查demo"中,我们将探讨如何在SQLite中进行这些操作。 首先,让我们了解如何创建一个SQLite数据库。在Python中,我们可以使用sqlite3库来与SQLite交互。创建数据库只需连接到一个不存在的数据库...
在这个“android SQLite 增删改查小例子”中,我们看到一个用于图书管理的应用实例,该应用利用SQLite进行数据操作。下面将详细解释如何在Android中使用SQLite进行基本的增、删、改、查操作。 1. **...
在这个"android SQLite 增删改查"的示例中,我们将探讨如何在Android应用中使用SQLite进行基本的数据操作。 首先,我们需要创建一个SQLite数据库。在Android中,这通常通过扩展SQLiteOpenHelper类来实现。...
本教程将深入探讨如何在Android中执行SQLite的增、删、改、查(CRUD)操作。 ### 一、SQLite简介 SQLite是一个自包含、无服务器、零配置、事务型的SQL数据库引擎。它的设计目标是提供一个嵌入式、轻量级的数据存储...
C# EF+SQLITE数据库增删改查,适用与多种项目开发,初学者按照步骤进行EF动态库引用,可直接进行对数据库操作:以下是对于增删改查的部分展示 //var list = AppNewObject.Instance.MyBaseService.FindAll(); //查询 ...
在LabVIEW中控制SQLite,可以通过编写VIs(Virtual Instruments)来实现对SQLite数据库的增删改查操作。 **1. 创建SQLite数据库连接** 在LabVIEW中,首先需要创建一个SQLite数据库连接。这通常通过调用SQLite的动态...
在这个"androidSQLite增删改查及事务处理"的demo中,我们将探讨如何进行基本的数据库操作以及事务处理。 **1. 创建SQLite数据库** 首先,我们需要创建一个SQLiteOpenHelper的子类,这个类帮助我们管理数据库的版本...