SQLite 的使用(一)
来源:互联网 发布:mysql delete语句 编辑:程序博客网 时间:2024/06/05 05:50
最近项目不是很忙,刚好在看代码的时候,看到了数据库这一块,感觉好长时间没用,也都忘记了,也就顺便复习一下。
由于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, new Object[]{user.getUsername(), 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>然后就可以直接调用啦!就这么简单~
0 0
- SQLite 的使用(一)
- android中sqlite的使用(一)
- 【移动GIS】sqlite的使用(一)
- Android:SQLite的使用(一)
- sqlite使用注意事项(一)
- Android学习笔记(四一):SQLite的使用
- Android学习笔记(四一):SQLite的使用
- Android SQLite 的介绍和使用(一)
- SQLite的安装和使用(一)
- SQLite入门使用教程(一)
- Sqlite的使用(二)
- 【SQLite】SQLite的简单使用
- Android SQLite的查询优化(一)
- 数据库SQLite的笔记(一)
- sqlite使用总结(一)搭建编译与使用环境
- SQLite.Net使用入门(一)
- SQLite学习笔记(9)-SQLite的简单使用
- SQLite基础知识(一)
- puppet学习与精通之Service资源详细介绍及案例分析
- centOS系统下安装Androguard工具
- linux解压大全
- Log4j的详细讲解
- 友盟推送:测试模式推送完成,但却收不到推送信息
- SQLite 的使用(一)
- POJ 2253 Frogger
- Symmetric Tree(easy)
- java发送http的get、post请求
- leetcode 191. Number of 1 Bits
- echart扩展地图
- Log4j配置详解
- 1 10
- PB12.5带图标菜单自定义对象