另一种使用数据库的方式是,自己创建数据库并创建相应的数据库表,参考下面的代码:
public class DatabaseHelper extends SQLiteOpenHelper {
//构造,调用父类构造,数据库名字,版本号(传入更大的版本号可以让数据库升级,onUpgrade被调用)
public DatabaseHelper(Context context) {
super(context, DatabaseConstant.DATABASE_NAME, null, DatabaseConstant.DATABASE_VERSION)
}
//数据库创建时调用,里面执行表创建语句.
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(createVoucherTable())
}
//数据库升级时调用,先删除旧表,在调用onCreate创建表.
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + DatabaseConstant.TABLE_NAME)
onCreate(db)
}
//生成 创建表的SQL语句
private String createVoucherTable() {
StringBuffer sb = new StringBuffer()
sb.append(" CREATE TABLE ").append(DatabaseConstant.TABLE_NAME).append("( ").append(“ID”)
.append(" TEXT PRIMARY KEY, ")
.append(“USER_ID”).append(" INTEGER, ").append(“SMS_CONTENT”).append(" TEXT ) ")
return sb.toString()
}
} 继承SQLiteOpenHelper并实现里面的方法.
之后:
//得到数据库助手类
helper
=
new
DatabaseHelper(context)
//通过助手类,打开一个可读写的数据库连接
SQLiteDatabase
database
=
helper.getReadableDatabase()
//查询表中所有记录
database.query(DatabaseConstant.TABLE_NAME,
null,
null,
null,
null,
null,
null)
//把id改成你的列名public HashMap<String, Object> Get_Info(int id){
HashMap<String, Object> map = new HashMap<String, Object>()
String sql = "SELECT * FROM " + TABLENAME +" WHERE ID='" +id +"'"
Cursor result = this.db.rawQuery(sql, null) // 执行查询语句
for (result.moveToFirst() !result.isAfterLast() result.moveToNext()) { // 采用循环的方式检索数据
map.put("A", result.getString(1))
map.put("B", result.getString(2))
map.put("B", result.getInt(3))
}
this.db.close()
return map
}
多张表字段相同,对数据查询没有什么影响,只是涉及到同时查询多张表的时候,通过别名的方式解决。比如:表A,字段id,nam
表B,字段id,calss
现在查询:
SELECT a.name FROM A a
LEFT JOIN B b ON b.id=a.id
WHERE 1=1
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)