您的位置:首页 > 数据库

SQL实现增删改查操作

2015-12-07 15:34 381 查看
1.写一个DBSQLiteHelper类继承SQLiteOpenHelper

package com.example.lession05_dbs.dbs;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class DBSQLiteHelper extends SQLiteOpenHelper {
private static final String tag="DBSQLiteHelper";
private static final String name="csdn.db";
private static final int version=1;
public DBSQLiteHelper(Context context) {
super(context, name, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table person(id integer primary key autoincrement,name varchar(20),age integer)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
2、根据创建的表写一个实体bean

package com.example.lession05_dbs.domain;
import java.io.Serializable;
public class Person implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";
}
public Person() {
super();
}
public Person(Integer id, String name, Integer age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
3、写一个接口,里面有增删改查的方法

package com.example.lession05_dbs.dao;
import java.util.List;
import com.example.lession05_dbs.domain.Person;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
public interface PersonDao {
//添加的操作
public boolean insert(SQLiteDatabase db,ContentValues values);
//执行更新的操作
public boolean update(SQLiteDatabase db,ContentValues values,Integer id);
//根据id删除操作
public boolean delete(SQLiteDatabase db,Integer id);
//查询所有
public List<Person> findAll(SQLiteDatabase db);
//条件查询操作
public List<Person> findByName(SQLiteDatabase db,String[] selectionArgs);
//获取当前页的信息
public List<Person> getNowPageInfo(SQLiteDatabase db,String[] selectionArgs,String order,String limit);
}
4、写一个实现类实现该接口
package com.example.lession05_dbs.dao;
import java.util.ArrayList;
import java.util.List;
import com.example.lession05_dbs.domain.Person;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
public class PersonDaoImpl implements PersonDao {
@Override
public boolean insert(SQLiteDatabase db, ContentValues values) {
boolean flag=false;
if(db.isOpen()){
long l=db.insert("person",null, values);
/**
* table 表名 nullColumnHack: insert into
* person(name,phone)values('chenhj','123'); //insert into
* person(name) values(null); //insert into person() values();
* values 参数
*
*/
if(l>0){
flag=true;
}
db.close();
}
return flag;
}
@Override
public boolean update(SQLiteDatabase db, ContentValues values, Integer id) {
boolean flag=false;
if(db.isOpen()){
long l=db.update("person", values, "id=?", new String[]{id+""});
if(l>0){
flag=true;
}
db.close();
}
return flag;
}
@Override
public boolean delete(SQLiteDatabase db, Integer id) {
boolean flag=false;
if(db.isOpen()){
long l=db.delete("person", "id=?", new String[]{id+""});
if(l>0){
flag=true;
}
}
return flag;
}
@Override
public List<Person> findAll(SQLiteDatabase db) {
List<Person> persons=new ArrayList<Person>();
if(db.isOpen()){
Cursor cursor=db.query("person", new String[] { "id", "name",
"age" }, null, null, null, null, null);
while(cursor.moveToNext()){
Person person=new Person();
person.setId(cursor.getInt(cursor.getColumnIndex("id")));
person.setName(cursor.getString(cursor.getColumnIndex("name")));
person.setAge(cursor.getInt(cursor.getColumnIndex("age")));
persons.add(person);
}
}
return persons;
}
@Override
public List<Person> findByName(SQLiteDatabase db, String[] selectionArgs) {
List<Person> persons=new ArrayList<Person>();
if (db.isOpen()) {
// 执行查询
Cursor cursor = db.query("person", new String[] { "id", "name","age" }, "name like ?", selectionArgs, null, null, "id desc");
while (cursor.moveToNext()) {
// 创建person对象
Person person = new Person();
// 设置person的属性
person.setId(cursor.getInt(cursor.getColumnIndex("id")));
person.setName(cursor.getString(cursor.getColumnIndex("name")));
person.setAge(cursor.getInt(cursor.getColumnIndex("age")));
// 添加到集合众
persons.add(person);
}
}
return persons;
}
@Override
public List<Person> getNowPageInfo(SQLiteDatabase db,
String[] selectionArgs, String order, String limit) {
List<Person> persons = new ArrayList<Person>();
if (db.isOpen()) {
// 执行查询
Cursor cursor = db.query("person", new String[] { "id", "name","age" }, "name like ?", selectionArgs, null, null, order,limit);
while (cursor.moveToNext()) {
// 创建person对象
Person person = new Person();
// 设置person的属性
person.setId(cursor.getInt(cursor.getColumnIndex("id")));
person.setName(cursor.getString(cursor.getColumnIndex("name")));
person.setAge(cursor.getInt(cursor.getColumnIndex("age")));
// 添加到集合众
persons.add(person);
}
}
return persons;
}
}
5.写一个测试类

package com.example.lession05_dbs.test;
import java.util.List;
import com.example.lession05_dbs.dao.PersonDao;
import com.example.lession05_dbs.dao.PersonDaoImpl;
import com.example.lession05_dbs.dbs.DBSQLiteHelper;
import com.example.lession05_dbs.domain.Person;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.test.AndroidTestCase;
public class DBTest extends AndroidTestCase{
PersonDao personDao=new PersonDaoImpl();
public void createDB(){
DBSQLiteHelper db=new DBSQLiteHelper(this.getContext());
SQLiteDatabase sdb=db.getWritableDatabase();
}
public void insert(){
DBSQLiteHelper db=new DBSQLiteHelper(this.getContext());
for(int i=1;i<10;i++){
SQLiteDatabase sdb=db.getWritableDatabase();
ContentValues values=new ContentValues();
Person person=new Person(null, "shuang"+i, 21);
values.put("name", person.getName());
values.put("age",person.getAge());
personDao.insert(sdb, values);
}
}
public void update(){
DBSQLiteHelper db=new DBSQLiteHelper(this.getContext());
SQLiteDatabase sdb=db.getWritableDatabase();
ContentValues values=new ContentValues();
Person person=new Person(1,"xue",22);
values.put("name", person.getName());
values.put("age", person.getAge());
personDao.update(sdb, values, person.getId());
}
public void delete(){
DBSQLiteHelper db=new DBSQLiteHelper(this.getContext());
SQLiteDatabase sdb=db.getWritableDatabase();
Person person=new Person(1,"xue",22);
personDao.delete(sdb, person.getId());
}
public void findAll(){
DBSQLiteHelper db=new DBSQLiteHelper(this.getContext());
SQLiteDatabase sdb=db.getWritableDatabase();
List<Person> persons=personDao.findAll(sdb);
for(Person p:persons){
System.out.println(p.toString());
}
}
public void findByName(){
DBSQLiteHelper db=new DBSQLiteHelper(this.getContext());
SQLiteDatabase sdb=db.getWritableDatabase();
List<Person> persons=personDao.findByName(sdb, new String[]{"%g1%"});
for(Person p:persons){
System.out.println(p.toString());
}
}
public void getPage(){
DBSQLiteHelper db=new DBSQLiteHelper(this.getContext());
SQLiteDatabase sdb=db.getWritableDatabase();
List<Person> persons=personDao.getNowPageInfo(sdb, new String[]{"%sh%"}, " id desc ", "0,3");
for(Person p:persons){
System.out.println(p.toString());
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: