SQLite
来源:互联网 发布:猎头行业 知乎 编辑:程序博客网 时间:2024/06/06 00:30
用户保存常量的类
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);}@Overridepublic 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);
}@Overridepublic 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[]{person.getName(), person.getAge(), person.getId()});}@Overridepublic 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()});}@Overridepublic 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;}@Overridepublic 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;}@Overridepublic 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;}@Overridepublic List<Person> selectPagination(int pageNo, int pageSize) { return null;}
}
- SQLite
- SQLite
- SQLite
- SQLite
- SQLite
- sqlite
- sqlite
- SQLite
- SQLite
- sqlite
- SQLite
- SQLite
- SQLite
- SQLite
- SQLite
- sqlite
- sqlite
- sqlite
- 导出mongo中的数据
- NYOJ - 599 奋斗的小蜗牛
- [BZOJ3994][SDOI2015]约数个数和(莫比乌斯反演)
- 编辑器CocoStudio和CocosBuilder的对比
- 学习android第四周总结相对布局和线性布局常用属性的作用
- SQLite
- 2013山东省第三届ACM省赛 Mine Number
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
- 26. Remove Duplicates from Sorted Array
- hdu 5339 Untitled (dfs)
- LU分解(matlab实现)
- visual studio 版本号
- 怎样用产品思维来做好PPT
- STM32时钟源