最近项目不是很忙,刚好在看代码的时候,看到了数据库这一块,感觉好长时间没用,也都忘记了,也就顺便复习一下。
由于android中google给我们提供了sqliteOpenHelper这个类来帮助我们操作数据库,所以我们第一步自然是要继承这个类:
public class DBHtlper extends sqliteOpenHelper { public DBHtlper(Context context,String name,sqliteDatabase.CursorFactory factory,int version) { super(context,name,factory,version); } @Override public void onCreate(sqliteDatabase sqliteDatabase) { //创建一个表,id 主键,自动增长 username、password 字符类型 String sql = "create table user(id integer primary key autoincrement,username varchar(20) not null,password varchar(20) not null);"; sqliteDatabase.execsql(sql); } @Override public void onUpgrade(sqliteDatabase sqliteDatabase,int i,int i1) { sqliteDatabase.execsql("DROP TABLE IF EXISTS user"); onCreate(sqliteDatabase); } }主要重写oncreate和onupgrade这两个方法,oncreate一般用于创建数据库表,onupgrade主要用于数据库升级的操作。还必须要重写4个参数的构造函数,第一个参数是Context上下文,第二个参数是创建数据库的时候,数据库的名称, 第三个参数CursorFactory指定在执行查询时获得一个游标实例的工厂类, 设置为null,代表使用系统默认的工厂类,第四个参数是数据库的版本。
然后创建一个sql帮助类,分别执行增、删、改、查的操作:
<span style="font-family:SimSun;font-size:14px;"> public sqliteUtils(Context context) { //创建数据库Person.db dbHtlper = new DBHtlper(context,"Person.db",null,1); } /** * 插入数据 * * @param user */ public void insertData(User user) { String sql = "insert into user(username,password) values(?,?)"; //获得数据库的操作 sqliteDatabase database = dbHtlper.getWritableDatabase(); database.execsql(sql,new Object[]{user.getUsername(),user.getPassword()}); database.close(); } /** * 更新数据 * * @param user */ public void updateData(User user) { String sql = "update user set username = ?,password = ? where id = ?"; sqliteDatabase database = dbHtlper.getWritableDatabase(); database.execsql(sql,user.getPassword(),user.getId()}); database.close(); } /** * 删除数据 * * @param user */ public void deleteData(User user) { String sql = "delete from user where id = ? or username = ?"; sqliteDatabase database = dbHtlper.getWritableDatabase(); database.execsql(sql,new Object[]{user.getId(),user.getUsername()}); database.close(); } /** * 查询 */ public User selectData(String userName) { User user = null; String sql = "select * from user where username like ?"; sqliteDatabase database = dbHtlper.getReadableDatabase(); Cursor cursor = database.rawQuery(sql,new String[]{"%"+userName+"%"}); while (cursor.moveToNext()) {//只取第一条 user = new User(); user.setId(cursor.getInt(cursor.getColumnIndex("id"))); user.setUsername(cursor.getString(cursor.getColumnIndex("username"))); user.setPassword(cursor.getColumnName(cursor.getColumnIndex("password"))); database.close(); return user; } return user; }</span>然后就可以直接调用啦!就这么简单~ 原文链接:https://www.f2er.com/sqlite/198888.html