java创建数据库_用Java语言来进行数据库的创建以及增删改查

packagecom.bwf.a10_sql_02.db;importandroid.content.ContentValues;importandroid.content.Context;importandroid.database.Cursor;importandroid.database.sqlite.SQLiteDatabase;/*** 使用该类来封装增删改查等数据库操作的方法,方便使用

*@authorfanhy

*@since2015-09-22

*@version1.0.0

**/

public classDBOPeration {

SQLiteDatabase sd;publicDBOPeration(Context context) {super();//得到DBHelper对象,通过它去打开数据库

DBHelper dbHelper = new DBHelper(context, "Stu.db", null, 1);//初始化SQLiteDatabase

/*** 两种方式打开数据库:

* 内存充裕时,两种方式打开数据库的效果是一样的,都是可以读写的

* 当内存较低没有可写空间时:

* getReadableDatabase:以可读形式打开

* getWritableDatabase:以可写方式打开失败并抛出异常

**/sd=dbHelper.getReadableDatabase();//sd = dbHelper.getWritableDatabase();

}/*** 插入一条数据

*@paramString name 学生姓名

*@paramint age 学生年龄

*

**/

public void insert(String name, intage){//首先定义出要执行的数据库语句//String insertStr = "INSERT INTO stu (name, age) values ("+name+","+age+")";//执行该SQL语句//sd.execSQL(insertStr);//内部通过一个HashMap来实现的

ContentValues values = newContentValues();

values.put("name", name);

values.put("age", age);/***@paramString table 表名

*@paramString nullColumnHack 缺省(ContentValues)指定哪一列值为NULL

*@paramContentValues values 要插入的数据封装到该容器中

**/sd.insert("stu", "name", values);

}/*** 删除所有数据

**/

public voiddeleteAll(){//定义数据库语句//String deleteAllStr = "delete from stu";//sd.execSQL(deleteAllStr);

/***@paramString table 表名

*@paramString whereClause 删除的条件,传null代表全部删除

*@paramString[] whereArgs 当删除条件都有不确定值时,在该参数中使用变量代替,不需要则传null

**/sd.delete("stu", null, null);

}/*** 根据年龄范围来删除

**/

public void deleteByAgeRange(int from, intto){/***@paramString table 表名

*@paramString whereClause 删除的条件,传null代表全部删除

*@paramString[] whereArgs 当删除条件都有不确定值时,在该参数中使用变量代替,不需要则传null

**/String whereClause= "age > ? and age < ?";

String[] whereArgs= new String[]{from + "", to + ""};

sd.delete("stu", whereClause, whereArgs);

}/*** 修改指定名字同学的年龄

*@paramString nameCondition 更新条件

*@paramint newAge 更新后的年龄

**/

public void updateData(String nameCondition, intnewAge){//String sqlUpdate = "update stu set age = "+age+" where name = '" + nameCondition +"'";//sd.execSQL(sqlUpdate);

/***@paramString table 表名

*@paramContentValues values 要更新的数据封装到该容器中

*@paramString whereClause 更新的条件,如果填null则表示无条件修改,即修改全部内容

*@paramString[] whereArgs 更新条件中含未知内容?部分使用该参数来填充,不需要则填null

*

**/ContentValues values= newContentValues();

values.put("name", nameCondition);

values.put("age", newAge);

String whereClause= "name = ?";

String[] whereArgs={nameCondition};

sd.update("stu", values, whereClause, whereArgs);

}/*** 查询所有数据

**/

publicCursor searchAll(){

Cursor cursor;//String sqlSelect = "select * from stu";//cursor = sd.rawQuery(sqlSelect, null);

/***@paramString table 表名

*@paramString[] columns 要返回的字段(列),如果需要返回所有字段,则传null即可

*@paramString selection 查询的条件,有不确定的部分用?占位,如果要查询全部则传null即可

*@paramString[] selectionArgs 查询中用?占位的部分,使用此参数进行填充,不需要则传null即可

*@paramString groupBy 分组条件,按照某字段或某几个字段进行分组,不需要则传null即可

*@paramString having 配合分组使用可以带条件,不需要则传null

*@paramString orderBy 排序条件,可以按照某个或某些字段分别做升序或者降序排列,不需要则传null

**/cursor= sd.query("stu", null, null, null, null, null, null);returncursor;

}/*** 按照年龄范围查询,结果按年龄升序排列

**/

public Cursor searchByAgeRange(int from, intto){

Cursor cursor;/***@paramString table 表名

*@paramString[] columns 要返回的字段(列),如果需要返回所有字段,则传null即可

*@paramString selection 查询的条件,有不确定的部分用?占位,如果要查询全部则传null即可

*@paramString[] selectionArgs 查询中用?占位的部分,使用此参数进行填充,不需要则传null即可

*@paramString groupBy 分组条件,按照某字段或某几个字段进行分组,不需要则传null即可

*@paramString having 配合分组使用可以带条件,不需要则传null

*@paramString orderBy 排序条件,可以按照某个或某些字段分别做升序或者降序排列,不需要则传null

**/String selection= "age > ? and age < ?";

String[] selectionArgs= {from + "", to + ""};

String orderBy= "age asc";

cursor= sd.query("stu", null, selection, selectionArgs, null, null, orderBy);returncursor;

}/*** 根据关键字进行模糊查询,结果按年龄降序排列

*@paramString key 查询的关键字

**/

publicCursor searchByKey(String key){

Cursor cursor;/***@paramString table 表名

*@paramString[] columns 要返回的字段(列),如果需要返回所有字段,则传null即可

*@paramString selection 查询的条件,有不确定的部分用?占位,如果要查询全部则传null即可

*@paramString[] selectionArgs 查询中用?占位的部分,使用此参数进行填充,不需要则传null即可

*@paramString groupBy 分组条件,按照某字段或某几个字段进行分组,不需要则传null即可

*@paramString having 配合分组使用可以带条件,不需要则传null

*@paramString orderBy 排序条件,可以按照某个或某些字段分别做升序或者降序排列,不需要则传null

**/String selection= "name like '%" + key +"%'";

String orderBy= "age desc";

cursor= sd.query("stu", null, selection, null, null, null, orderBy);returncursor;

}

}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值