SQLite
2016-05-02 17:30
459 查看
用户保存常量的类
用户保存数据Person类
工具类
接口类`
//
// long insert(String table,String nullColumnHack,ContentValues values)
// table:插入的表名
// nullColumnHack:当values为null或者size()为0时,强行null时的是数据列列名,不能是主键与非空列
// values:插入的一行记录数据,内部封装了HashMap
//
//update(String table,ContentValues values,String whereClause,String[] whereArgs)
// table:要更新的表名
// values:要更新的数据,内部封装了HashMap
// whereClause:满足该条件的记录会被更新(占位符)
// whereArgs:为whereArgs字句传入参数(代替占位符)
//
//delete(String table,String whereClause,String[] whereArgs)
// table:要删除的表名
// whereClause:满足该条件的记录会被删除(占位符)
// whereArgs:为whereClause传入参数(代替占位符)
//
//Cursor query(boolean distinct,是否要去除重复记录
// String table,要查询数据的表名
// String[] columns,要查询的列名
// String whereClause,查询条件子条件(占位符)
// String[] selectionArgs,为占位符传入参数
// String groupBy,控制分组
// String having,对分组过滤
// String orderBy,对记录排序
// String limit)进行分页
//
//
public class DAOBean implements DAO {
private SQLiteOpenHelperDemo sqLiteOpenHelperDemo;
// String insert_table =
// “INSERT INTO ”
// + Person_constant.TABLE_NAME_PERSON
// + ” VALUES(null,?,?)”;
// db.execSQL(insert_table, new Object[]{person.getName(), person.getAge()});
ContentValues contentValues=new ContentValues();
contentValues.put(“id”,person.getId());
contentValues.put(“name”,person.getName());
contentValues.put(“age”,person.getAge());
db.insert(Person_constant.TABLE_NAME_PERSON,null,contentValues);
}
public class Person_constant { public final static String TABLE_NAME_PERSON = "t_person"; public final static String TABLE_NAME_PERSON_id = "id"; public final static String TABLE_NAME_PERSON_NAME = "name"; public final static String TABLE_NAME_PERSON_AGE = "age"; }
用户保存数据Person类
public class Person { private int id; private String name; private int age; public Person() { } public Person(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + '}'; } }
工具类
public class SQLiteOpenHelperDemo extends SQLiteOpenHelper { private static SQLiteOpenHelperDemo sqLiteOpenHelperDemo; private final static String DATABASE_NAME = "MyDataBase.db"; private final static int VERSION = 1; private SQLiteOpenHelperDemo(Context context) { super(context, DATABASE_NAME, null, VERSION); System.out.println(sqLiteOpenHelperDemo); } public static SQLiteOpenHelperDemo getInstance(Context context) { if (sqLiteOpenHelperDemo == null) { sqLiteOpenHelperDemo = new SQLiteOpenHelperDemo(context); } return sqLiteOpenHelperDemo; } @Override public void onCreate(SQLiteDatabase db) { StringBuffer creat_table = new StringBuffer(); creat_table.append("CREATE TABLE IF NOT EXISTS ") .append(Person_constant.TABLE_NAME_PERSON) .append("(") .append(Person_constant.TABLE_NAME_PERSON_id) .append(" INTEGER PRIMARY KEY AUTOINCREMENT,") .append(Person_constant.TABLE_NAME_PERSON_NAME) .append(" VARCHAR(20) UNIQUE,") .append(Person_constant.TABLE_NAME_PERSON_AGE) .append(" INTEGER DEFAULT 1 CHECK(age BETWEEN 1 AND 150))"); db.execSQL(creat_table.toString()); StringBuffer insert_table=new StringBuffer(); insert_table.append("INSERT INTO ") .append(Person_constant.TABLE_NAME_PERSON) .append(" VALUES") .append("(null,?,?)"); db.execSQL(insert_table.toString(),new Object[]{"张三",20}); db.execSQL(insert_table.toString(),new Object[]{"李四",21}); db.execSQL(insert_table.toString(),new Object[]{"王五",22}); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
接口类`
public interface DAO { void insert(Person person); void update(Person person); void delete(Person person); List<Person> select(); List<Person> select(Integer... id); List<Person> select(String... name); } 实现接口的业务类
//
// long insert(String table,String nullColumnHack,ContentValues values)
// table:插入的表名
// nullColumnHack:当values为null或者size()为0时,强行null时的是数据列列名,不能是主键与非空列
// values:插入的一行记录数据,内部封装了HashMap
//
//update(String table,ContentValues values,String whereClause,String[] whereArgs)
// table:要更新的表名
// values:要更新的数据,内部封装了HashMap
// whereClause:满足该条件的记录会被更新(占位符)
// whereArgs:为whereArgs字句传入参数(代替占位符)
//
//delete(String table,String whereClause,String[] whereArgs)
// table:要删除的表名
// whereClause:满足该条件的记录会被删除(占位符)
// whereArgs:为whereClause传入参数(代替占位符)
//
//Cursor query(boolean distinct,是否要去除重复记录
// String table,要查询数据的表名
// String[] columns,要查询的列名
// String whereClause,查询条件子条件(占位符)
// String[] selectionArgs,为占位符传入参数
// String groupBy,控制分组
// String having,对分组过滤
// String orderBy,对记录排序
// String limit)进行分页
//
//
public class DAOBean implements DAO {
private SQLiteOpenHelperDemo sqLiteOpenHelperDemo;
public DAOBean(Context context) { this.sqLiteOpenHelperDemo = SQLiteOpenHelperDemo.getInstance(context); } @Override public void insert(Person person) { SQLiteDatabase db = sqLiteOpenHelperDemo.getWritableDatabase();
// String insert_table =
// “INSERT INTO ”
// + Person_constant.TABLE_NAME_PERSON
// + ” VALUES(null,?,?)”;
// db.execSQL(insert_table, new Object[]{person.getName(), person.getAge()});
ContentValues contentValues=new ContentValues();
contentValues.put(“id”,person.getId());
contentValues.put(“name”,person.getName());
contentValues.put(“age”,person.getAge());
db.insert(Person_constant.TABLE_NAME_PERSON,null,contentValues);
} @Override public void update(Person person) { SQLiteDatabase db = sqLiteOpenHelperDemo.getWritableDatabase(); String update = "UPDATE " + Person_constant.TABLE_NAME_PERSON + " SET " + Person_constant.TABLE_NAME_PERSON_NAME + "=?," + Person_constant.TABLE_NAME_PERSON_AGE + "=?" + " WHERE " + Person_constant.TABLE_NAME_PERSON_id + "=?"; db.execSQL(update, new Object a277 []{person.getName(), person.getAge(), person.getId()}); } @Override public void delete(Person person) { SQLiteDatabase db = sqLiteOpenHelperDemo.getWritableDatabase(); String delete = "DELETE FROM " + Person_constant.TABLE_NAME_PERSON + " WHERE " + Person_constant.TABLE_NAME_PERSON_id + "=?"; db.execSQL(delete, new Object[]{person.getId()}); } @Override public List<Person> select() { SQLiteDatabase db = sqLiteOpenHelperDemo.getWritableDatabase(); String selectAll = "SELECT *FROM " + Person_constant.TABLE_NAME_PERSON; List<Person> list = new ArrayList<>(); Cursor cursor = null; try { cursor = db.rawQuery(selectAll, null); while (cursor.moveToNext()) { Person person = new Person( cursor.getInt(cursor.getColumnIndex("id")), cursor.getString(cursor.getColumnIndex("name")), cursor.getInt(cursor.getColumnIndex("age")) ); list.add(person); } return list; } catch (Exception e) { e.printStackTrace(); } finally { if (db != null && db.isOpen()) { db.close(); db = null; } if (cursor != null && !cursor.isClosed()) { cursor.close(); cursor = null; } } return null; } @Override public List<Person> select(Integer... id) { SQLiteDatabase db = sqLiteOpenHelperDemo.getWritableDatabase(); List<Person> list = new ArrayList<>(); StringBuffer sb = new StringBuffer(); for (int ids : id) { sb.append("?,"); } sb.deleteCharAt(sb.length() - 1); String select = "SELECT *FROM " + Person_constant.TABLE_NAME_PERSON + " WHERE id in (" + sb.toString() + ")"; String[] st = new String[id.length]; for (int i = 0; i < id.length; i++) { st[i] = String.valueOf(id[i]); } Cursor cursor = null; try { cursor = db.rawQuery(select, st); while (cursor.moveToNext()) { Person p = new Person( cursor.getInt(cursor.getColumnIndex("id")), cursor.getString(cursor.getColumnIndex("name")), cursor.getInt(cursor.getColumnIndex("age")) ); list.add(p); } return list; } catch (Exception e) { e.printStackTrace(); } finally { if (db != null && db.isOpen()) { db.close(); db = null; } if (cursor != null && !cursor.isClosed()) { cursor.close(); cursor = null; } } return null; } @Override public List<Person> select(String... name) { List<Person> list = new ArrayList<>(); SQLiteDatabase db = sqLiteOpenHelperDemo.getWritableDatabase(); StringBuffer sb = new StringBuffer(); for (String names : name) { sb.append("?,"); } sb.deleteCharAt(sb.length() - 1); String selectName = "SELECT *FROM " + Person_constant.TABLE_NAME_PERSON + " WHERE name in (" + sb.toString() + ")"; Cursor cursor = null; try { cursor = db.rawQuery(selectName, name); while (cursor.moveToNext()) { Person p = new Person( cursor.getInt(cursor.getColumnIndex("id")), cursor.getString(cursor.getColumnIndex("name")), cursor.getInt(cursor.getColumnIndex("age")) ); list.add(p); } return list; } catch (Exception e) { e.printStackTrace(); } finally { if (db != null && db.isOpen()) { db.close(); db = null; } if (cursor != null && !cursor.isClosed()) { cursor.close(); cursor = null; } } return null; } @Override public List<Person> selectPagination(int pageNo, int pageSize) { return null; }
}
相关文章推荐
- mysql默认安装
- SQLite的简单操作
- oracle学习之路——关于常量的输出
- Oracle 建表空间,建用户
- OEM Grid Control 11gR1部署之WebLogic Server部分
- mac mysql Access denied for user问题有效解决方法
- 【11gR2】Enterprise Linux Release 5 Update 4安装64位Oracle 11gR2(文字版)
- 如何将String[]类型的数据保存到数据库里
- VMware上安装RAC遇到的问题,已解决
- vb6.0 Access数据库
- JDBC自定义 数据库连接池
- MySQL和Lucene索引对比分析
- C扩展 从共享内存shm到memcache外部内存
- sql server 2008r2安装注意的问题
- ubuntu mysql5.6 数据库占用CPU过高导致机器卡死
- servlet向jsp传递值,mysql服务器报错
- redis安装
- redis安装
- 解决SQL SERVER 2008数据库表中修改字段后不能保存的问题
- redis 一二事 - 设置过期时间,以文件夹形式展示key显示缓存数据