SQLLite数据库操作

DBOpenHelper.java

package 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

}

@Override

public void onCreate(SQLiteDatabase db) {

//数据库第一次被创建的时候调用

//生成数据库表

String sql = "CREATE  TABLE person(id INTEGER PRIMARY KEY , name VARCHAR, age INTEGER,phone VARCHAR)";

db.execSQL(sql);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

// 数据库文件版本号发生变更的时候调用

//软件升级的时候

db.execSQL("ALTER TABLE person ADD amount VARCHAR");

}

}



personServise.java

package 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.java

package 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);

}

@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(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.java

package 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;

@Override

protected 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{

@Override

public 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();

}

}

}

时间: 2024-10-25 06:50:13

SQLLite数据库操作的相关文章

Android之SqlLite数据库使用

每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的.与操作系统无关的SQL数据库—SQLite.SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了.SQLite已经被多种软件和产品使用,Mozilla FireFox就是使用SQLite来存储配置数据的,Android和iPhone都是使用SQLite来存储数据的. SQLite数据库是D.Richard Hipp用C语言编

SQLite数据库操作类

[csharp] view plaincopy 首先:添加配置<add key="SQLString" value="~\demo.db"/> [csharp] view plaincopy [csharp] view plaincopy /************************************** * 作用:SQLLite Server操作实现 **************************************/ using

SqlLite数据库帮助类和基本DEMO

title: SqlLite数据库帮助类和基本DEMO categories: Codeing date: 2019-10-16 15:05:13 tags: [C#,编程开发,实用教程,DEMO] thumbnail: http://hemrj.cn/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20191010152920.jpg --- SqlLite数据库帮助类和基本DEMO SQLlite优点 ◇轻量级 SQLite和C/S模式的数据库软件不同,它是进程内的

C# .NET更智能的数据库操作的封装

前述: 对数据库操作的封装,相信网络上已经有一大堆,ORM框架,或者是.NET本身的EF,都很好的支持数据库操作.这篇文章是分享自己所思考的,对数据库操作的简单封装.我对于这篇文章,认为被浏览者所关注重点的是怎么分析设计数据库操作封装,代码是其次.而且,这是我第一篇文章,为了想好怎么实现花了些天,代码是博客发表时现写的.所以我想,使用可能还有bug,而且没有try catch异常的设计. 这个框架我理应做到对数据库无关,无论是哪个数据库都能够使用.不过,重点在于分析,而不是代码.所以,为了更好的

python--第十一天总结(paramiko 及数据库操作)

数据库操作 Python 操作 Mysql 模块的安装 linux:     yum install MySQL-python window:     http://files.cnblogs.com/files/wupeiqi/py-mysql-win.zip

数据库——基础(数据库操作,表格操作)——增加高级查询

笔记 LAMP:Linx(操作系统) A(阿帕奇)——网页的应用程序 M(Mysql):体积小,应用简单 P(PHP) 第一步:搭建网页环境——A\M\P WAMP:用WAMP搭建环境 DW:更好的显示 数据库的基本操作: 数据库——表结构——字段(列) 每一行数据成为一条数据(记录) 特点:关系型数据库,有严格的规范 1.必须有主键:能够唯一标识一条数据的字段 2 T-SQL:通用的数据库操作语句 自增长列code(主键列) ;连接键表 最后一个字段不加 ,#注释 创建表:create tab

SQLiteDatabase数据库操作详解

今天花了点时间总结了一下数据的相关知识android中系统自带的数据库SQLiteDatabase数据库,这种数据库操作起来比ormLite数据库(第三方的)麻烦点,但是我对这种数据库操作比较熟悉所以我就采用了这种数据库,如有错误欢迎大家批评指正,谢谢 1.SQLiteDatabase SQLiteDatabase本身是一个数据库的操作类,但是如果想进行数据库的操作,还需要android.database.sqlite.SQLiteOpenHelper类的帮助,在执行SQL语句时execSQL(

Android打造属于自己的数据库操作类。

1.概述 开发Android的同学都知道sdk已经为我们提供了一个SQLiteOpenHelper类来创建和管理SQLite数据库,通过写一个子类去继承它,就可以方便的创建.管理数据库.但是当我们需要去做增删改查的操作的时候,就得通过getWritableDatabase获取一个SQLiteDataBase然后老老实实去写操作值的put以及查询返回的Cursor处理,其实我们可以搞一个对象来帮我们干这些事情,打造属于你自己的数据库操作类. 2.操作类的初显形 假设现在我们什么都没有,我们要去搞一

laravel 数据库操作小例子

public function demo() { $res = null; //insert数据插入 //$user=array('username'=>'joy','password'=>'123456','age'=>23); //$res = DB::table('users')->insert($user); /* 数据查询 $res = DB::table('users')->where('username','joy')->get(); $res = DB: