SQLLite数据库操作
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数据库操作相关推荐
- sqllite能连接mysql_SQLLite数据库操作
DBOpenHelper.java package com.example.sqllite.servise; import android.content.Context; import androi ...
- Django-ORM数据库操作
背景 Django框架功能齐全自带数据库操作功能,由于工作中设计巨量的api接口,需要一个很好的web后端服务框架,Django给了莫大的帮助.本文主要介绍Django的ORM框架 我们一般对数据库的 ...
- android如何使用BroadcastReceiver后台实现来电通话记录的监听并存取到sqllite数据库通过Contentprovilder实现接口...
BroadcastReceiver 是android四大组件的一个,本质上是一种全局的监听器,用于监听全局的广播消息.下面实现了后台监听android手机通话记录.本demo分两个程序,第一个程序是设 ...
- SQLite数据库操作类
配置<add key="SQLString" value="~\demo.db"/> . /**************************** ...
- window系统下,使用sqlcipher工具加、解密sqllite数据库
今天使用sqlcipher加密sqllite数据库时转弯转进了误区,作为小白,就用小白的方式来记录一下使用该工具一些心得. 首先,从网上下载了一个sqlcipher-3.0.1-windows ,在这 ...
- SQLite数据库操作及ListView组件
一.SQLite数据库 1.什么是数据库? 存储大量的相似结构的数据.本质上是一个高效率的文件管理系统.提供快速的增删改查和多并发操作. 常用的数据库有:mysql,oracle,db2,sqlser ...
- 十六、Android数据库操作
16.1文件存储 16.1.1内部存储 openFileInput(FileName); openFileOutput(FileName,mode) //mode: //MODE_PRIVATE:代表 ...
- qt的mysql编程_界面编程之QT的数据库操作20180801
/*******************************************************************************************/ 一.数据库连 ...
- 安卓本地轻量级数据库操作框架 greenDao3.2.2 详细教程附带Demo①——集成环境,开辟难题。
欢迎安卓本地轻量级数据库操作框架 greenDao3.2.2 学习之旅. 本套框架博客系列博客目录: 第一篇:认识 greenDao3.2.2 框架,集成环境,开辟难题. 第二篇:简单的进行 增.删. ...
最新文章
- Blender纹理基础学习视频教程 CGCookie – Fundamentals of Texturing in Blender
- docker 安装oracle_Windows系统下安装Docker,包你满意!
- QML 信号和处理程序事件系统
- wampserver无法打开http://127.0.0.1/
- nginx应用领域分类+事件模型
- Sybase用户登录以后的自动运行脚本
- 泰晤士“中国学科评级”结果出炉,中国数学学科评级榜单公示!
- Jquery实现可拖拽的树菜单
- python类与方法与函数_Python 中的函数与类的方法
- ArcGIS Server 10.1发布数据源为ArcSDE(直连)的MXD【转】
- android音频框架书籍,Android高级架构师系统学习——Android 音频可视化
- Freebsd-9.0 how to change default sound device
- 图像处理之图像质量评价指标PSNR(峰值信噪比)
- 物流管理源代码java_基于jsp的物流管理-JavaEE实现物流管理 - java项目源码
- Steam WIN+R喜加一游戏管理工具 Steam Code Manager
- 图像 YUV与RGB格式转换
- 【新书推荐】【2021】基于多源信息融合的航天器自主导航技术
- 1.2.2-凑零钱问题(暴力递归+动态规划)
- 国内头部高科技企业招聘:大数据方向
- 微信二级不死域名是什么意思?被封后还能访问吗?
热门文章
- 在Rayeager px2上搭建web服务器anmpp
- linux rhel5.6 使用163yum源
- python findcontours_基于Python的opencv学习练习(十二) findContours()轮廓与绘制drawContours()...
- jupyter notebook运行的快捷键_AI Studio-Notebook基础使用教程(一)
- Invalid bound statement (not found)解决办法
- lsqnonneg函数_matlab中线性最小二乘问题求解
- 前台啊,就是这么杂!
- Spring Boot 特性
- Java 算法 开灯游戏
- Java 算法 能量项链