sqllite能连接mysql_SQLLite数据库操作

本文展示了如何在Android应用中使用SQLite数据库,包括创建`DBOpenHelper`类来初始化数据库,进行数据的增删改查操作,并实现分页查询。虽然未直接提及SQLite连接MySQL,但提供了SQLite数据库操作的基础示例。

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 getListByPage(){

SQLiteDatabase db=dbOpenHelp.getWritableDatabase();

List persons=new ArrayList();

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 persons=new ArrayList();

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

private int resources;

//界面生成器  负责将xml文件生成view对象

private LayoutInflater inflater;

public personAdapter(Context context,List 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 persons=new ArrayList();

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 persons = personServise.getListByPage();

List> data=new ArrayList>();

for(Person person:persons){

HashMap iteMap=new HashMap();

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

}

}

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值