DBOpenHelper.javapackage com.example.sqllite.servise;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;/*** 数据库操作底层组件* @author 37度爱你**/public class DBOpenHelp extends SQLiteOpenHelper {public DBOpenHelp(Context context) {super(context, "person.db", null, 3);// TODO Auto-generated constructor stub
}@Overridepublic void onCreate(SQLiteDatabase db) {//数据库第一次被创建的时候调用//生成数据库表
String sql = "CREATE  TABLE person(id INTEGER PRIMARY KEY , name VARCHAR, age INTEGER,phone VARCHAR)";db.execSQL(sql);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// 数据库文件版本号发生变更的时候调用//软件升级的时候
db.execSQL("ALTER TABLE person ADD amount VARCHAR");}}personServise.javapackage com.example.sqllite.servise;import java.util.ArrayList;import java.util.List;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import com.example.sqllite.domain.Person;/*** 数据库业务帮助类* @author 37度爱你**/public class personServise {private DBOpenHelp dbOpenHelp;public personServise(Context context){this.dbOpenHelp=new DBOpenHelp(context);}/*** 保存* @param person*/public void save(Person person){SQLiteDatabase db=dbOpenHelp.getWritableDatabase();//db.execSQL("INSERT INTO person(name,age) VALUES(?,?)",new Object[]{person.getName(),person.getAge()});;//db.execSQL("INSERT INTO person(name,age) VALUES('zzz',23)");
ContentValues contentValues=new ContentValues();contentValues.put("name", person.getName());contentValues.put("age", person.getAge());contentValues.put("amount", person.getAmount());db.insert("person", null, contentValues);db.close();}/*** 删除* @param id*/public void delete(int id){SQLiteDatabase db=dbOpenHelp.getWritableDatabase();//db.execSQL("delete from person where personID=?",new Object[]{id});;
db.delete("person", "id=?", new String[]{String.valueOf(id)});db.close();}/*** 更新操作* @param person*/public void update(Person person){SQLiteDatabase db=dbOpenHelp.getWritableDatabase();//db.execSQL("update person set name=?,age=? where personID=?",new Object[]{person.getName(),person.getAge(),person.getPersonID()});;
ContentValues contentValues=new ContentValues();contentValues.put("name", person.getName());contentValues.put("age", person.getAge());contentValues.put("amount", person.getAmount());db.update("person", contentValues, "id=?", new String[]{String.valueOf(person.getPersonID())});db.close();}/*** 查找第一条记录* @param id* @return*/public Person find(int id){SQLiteDatabase db=dbOpenHelp.getWritableDatabase();//Cursor cursor=db.rawQuery("select * from person where personID=?", new String[]{String.valueOf(id)});
Cursor cursor=db.query("person", null, "id=?", new String[]{String.valueOf(id)}, null, null, null);if(cursor.moveToFirst()){int personID=cursor.getInt(cursor.getColumnIndex("id"));String name=cursor.getString(cursor.getColumnIndex("name"));int age=cursor.getInt(cursor.getColumnIndex("age"));String amount=cursor.getString(cursor.getColumnIndex("amount"));Person person=new Person(personID, name, age,amount);cursor.close();db.close();return person;}else{db.close();return null;}}/*** 分页获取数据* 返回list* @return*/public List<Person> getListByPage(){SQLiteDatabase db=dbOpenHelp.getWritableDatabase();List<Person> persons=new ArrayList<Person>();Cursor cursor=db.query("person", null, null, null, null, null, null,"0,5");if(cursor.moveToFirst()){int personID=cursor.getInt(cursor.getColumnIndex("id"));String name=cursor.getString(cursor.getColumnIndex("name"));int age=cursor.getInt(cursor.getColumnIndex("age"));String amount=cursor.getString(cursor.getColumnIndex("amount"));Person person=new Person(personID, name, age,amount);persons.add(person);while(cursor.moveToNext()){int ID=cursor.getInt(cursor.getColumnIndex("id"));String name1=cursor.getString(cursor.getColumnIndex("name"));int age1=cursor.getInt(cursor.getColumnIndex("age"));String amount1=cursor.getString(cursor.getColumnIndex("amount"));Person person1=new Person(ID, name1, age1,amount1);persons.add(person1);}cursor.close();db.close();return persons;}else{db.close();return null;}}/*** 分页获取数据* 返回cursor* @return*/public Cursor getListByPage2(){SQLiteDatabase db=dbOpenHelp.getWritableDatabase();List<Person> persons=new ArrayList<Person>();Cursor cursor=db.rawQuery("select id as _id,name,age,amount from person limit 0,5", null);return cursor;}/*** 事务的使用*/public void translate(){SQLiteDatabase db=dbOpenHelp.getWritableDatabase();db.beginTransaction();//开始事务try{db.execSQL("update person set amount=amount+10 where id=1");db.execSQL("update person set amount=amount-10 where id=2");//设置事务成功标志
db.setTransactionSuccessful();}finally{db.endTransaction();//结束事务有两种 commit callback//根据事务标志决定
}}}personAdapter.javapackage com.example.sqllite.servise;import java.util.List;import com.example.sqllite.R;import com.example.sqllite.domain.Person;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;public class personAdapter extends BaseAdapter {/*** 自定义适配器*/private List<Person> persons;private int resources;//界面生成器  负责将xml文件生成view对象private LayoutInflater inflater;public personAdapter(Context context,List<Person> persons,int resources){this.persons=persons;this.resources=resources;//界面生成器由程序上下文获得的系统服务
inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);}@Overridepublic int getCount() {return persons.size();}@Overridepublic Object getItem(int position) {return persons.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {//如果为空说明展示的是第一页,否则将从第一页的缓存中获取其他页面if(convertView==null){convertView=inflater.inflate(resources, null);}TextView id=(TextView) convertView.findViewById(R.id.id);TextView name=(TextView) convertView.findViewById(R.id.name);TextView age=(TextView) convertView.findViewById(R.id.age);TextView amount=(TextView) convertView.findViewById(R.id.amount);Person person=persons.get(position);name.setText(person.getName());id.setText(String.valueOf(person.getPersonID()));age.setText(String.valueOf(person.getAge()));amount.setText(person.getAmount());return convertView;}}mainActivity.javapackage com.example.sqllite;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import com.example.sqllite.domain.Person;import com.example.sqllite.servise.DBOpenHelp;import com.example.sqllite.servise.personAdapter;import com.example.sqllite.servise.personServise;import android.app.Activity;import android.database.Cursor;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.SimpleCursorAdapter;import android.widget.Toast;public class MainActivity extends Activity {private ListView listView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listView=(ListView) findViewById(R.id.listView);listView.setOnItemClickListener(new OnItemClickListener());show2();//数据绑定/*DBOpenHelp dbOpenHelp=new DBOpenHelp(getApplicationContext());dbOpenHelp.getWritableDatabase();Person person1=new Person();Person person2=new Person();List<Person> persons=new ArrayList<Person>();personServise personServise=new personServise(getApplicationContext());personServise.update(new Person(1, "miaoshaung", 22, "60"));personServise.save(new Person(4, "asasdfd", 3243234, "70"));personServise.translate();person1=personServise.find(1);person2=personServise.find(2);persons=personServise.getListByPage();for(Person person:persons){Log.i("TAG", person.toString());}Toast.makeText(getApplicationContext(), person1.getAmount().toString()+"--"+ person2.getAmount().toString(), 1).show();*/}private void show() {personServise personServise=new personServise(getApplicationContext());List<Person> persons = personServise.getListByPage();List<HashMap<String, Object>> data=new ArrayList<HashMap<String,Object>>();for(Person person:persons){HashMap<String, Object> iteMap=new HashMap<String, Object>();iteMap.put("id", person.getPersonID());iteMap.put("name", person.getName());iteMap.put("age", person.getAge());iteMap.put("amount", person.getAmount());data.add(iteMap);}SimpleAdapter adapter=new SimpleAdapter(getApplicationContext(), data, R.layout.item, new String[]{"id","name","age","amount"}, new int[]{R.id.id,R.id.name,R.id.age,R.id.amount});listView.setAdapter(adapter);}private void show2(){personServise personServise=new personServise(getApplicationContext());List<Person> persons = personServise.getListByPage();personAdapter adapter=new personAdapter(getApplicationContext(), persons, R.layout.item);listView.setAdapter(adapter);}private void show3(){personServise personServise=new personServise(getApplicationContext());Cursor cursor=personServise.getListByPage2();SimpleCursorAdapter adapter=new SimpleCursorAdapter(getApplicationContext(), R.layout.item, cursor, new String[]{"_id","name","age","amount"}, new int[]{R.id.id,R.id.name,R.id.age,R.id.amount});listView.setAdapter(adapter);}/*** 条目点击事件* @author 37度爱你**/public class OnItemClickListener implements android.widget.AdapterView.OnItemClickListener{@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {ListView listView2=(ListView) arg0;Person person=(Person) listView2.getItemAtPosition(arg2);Toast.makeText(getApplicationContext(), person.toString(), 1).show();}}}

转载于:https://www.cnblogs.com/zhangjie9142/p/4745794.html

SQLLite数据库操作相关推荐

  1. sqllite能连接mysql_SQLLite数据库操作

    DBOpenHelper.java package com.example.sqllite.servise; import android.content.Context; import androi ...

  2. Django-ORM数据库操作

    背景 Django框架功能齐全自带数据库操作功能,由于工作中设计巨量的api接口,需要一个很好的web后端服务框架,Django给了莫大的帮助.本文主要介绍Django的ORM框架 我们一般对数据库的 ...

  3. android如何使用BroadcastReceiver后台实现来电通话记录的监听并存取到sqllite数据库通过Contentprovilder实现接口...

    BroadcastReceiver 是android四大组件的一个,本质上是一种全局的监听器,用于监听全局的广播消息.下面实现了后台监听android手机通话记录.本demo分两个程序,第一个程序是设 ...

  4. SQLite数据库操作类

    配置<add key="SQLString" value="~\demo.db"/> . /**************************** ...

  5. window系统下,使用sqlcipher工具加、解密sqllite数据库

    今天使用sqlcipher加密sqllite数据库时转弯转进了误区,作为小白,就用小白的方式来记录一下使用该工具一些心得. 首先,从网上下载了一个sqlcipher-3.0.1-windows ,在这 ...

  6. SQLite数据库操作及ListView组件

    一.SQLite数据库 1.什么是数据库? 存储大量的相似结构的数据.本质上是一个高效率的文件管理系统.提供快速的增删改查和多并发操作. 常用的数据库有:mysql,oracle,db2,sqlser ...

  7. 十六、Android数据库操作

    16.1文件存储 16.1.1内部存储 openFileInput(FileName); openFileOutput(FileName,mode) //mode: //MODE_PRIVATE:代表 ...

  8. qt的mysql编程_界面编程之QT的数据库操作20180801

    /*******************************************************************************************/ 一.数据库连 ...

  9. 安卓本地轻量级数据库操作框架 greenDao3.2.2 详细教程附带Demo①——集成环境,开辟难题。

    欢迎安卓本地轻量级数据库操作框架 greenDao3.2.2 学习之旅. 本套框架博客系列博客目录: 第一篇:认识 greenDao3.2.2 框架,集成环境,开辟难题. 第二篇:简单的进行 增.删. ...

最新文章

  1. Blender纹理基础学习视频教程 CGCookie – Fundamentals of Texturing in Blender
  2. docker 安装oracle_Windows系统下安装Docker,包你满意!
  3. QML 信号和处理程序事件系统
  4. wampserver无法打开http://127.0.0.1/
  5. nginx应用领域分类+事件模型
  6. Sybase用户登录以后的自动运行脚本
  7. 泰晤士“中国学科评级”结果出炉,中国数学学科评级榜单公示!
  8. Jquery实现可拖拽的树菜单
  9. python类与方法与函数_Python 中的函数与类的方法
  10. ArcGIS Server 10.1发布数据源为ArcSDE(直连)的MXD【转】
  11. android音频框架书籍,Android高级架构师系统学习——Android 音频可视化
  12. Freebsd-9.0 how to change default sound device
  13. 图像处理之图像质量评价指标PSNR(峰值信噪比)
  14. 物流管理源代码java_基于jsp的物流管理-JavaEE实现物流管理 - java项目源码
  15. Steam WIN+R喜加一游戏管理工具 Steam Code Manager
  16. 图像 YUV与RGB格式转换
  17. 【新书推荐】【2021】基于多源信息融合的航天器自主导航技术
  18. 1.2.2-凑零钱问题(暴力递归+动态规划)
  19. 国内头部高科技企业招聘:大数据方向
  20. 微信二级不死域名是什么意思?被封后还能访问吗?

热门文章

  1. 在Rayeager px2上搭建web服务器anmpp
  2. linux rhel5.6 使用163yum源
  3. python findcontours_基于Python的opencv学习练习(十二) findContours()轮廓与绘制drawContours()...
  4. jupyter notebook运行的快捷键_AI Studio-Notebook基础使用教程(一)
  5. Invalid bound statement (not found)解决办法
  6. lsqnonneg函数_matlab中线性最小二乘问题求解
  7. 前台啊,就是这么杂!
  8. Spring Boot 特性
  9. Java 算法 开灯游戏
  10. Java 算法 能量项链