创建数据库可以这样,但一般不这么使用
//开发中一般不这样创建数据库,一般使用数据库工具类SqliteOpenHelper
public void createDBUseContext(Context context){
//通过上下文来创建数据库 这样创建的数据库直接在/data/data/包名/databases文件夹下
context.openOrCreateDatabase("cc.db", Context.MODE_PRIVATE, null);
}
public void createDBUseSqliteDatabase(Context context){
//通过SqliteDatabase来创建数据库 这样创建的数据库直接在/data/data/包名下
File file = new File("/data/data/"+context.getPackageName(),"dd.db");
SQLiteDatabase.openOrCreateDatabase(file, null);
}
}
可以使用数据库工具类SqliteOpenHelper来创建
public class SqliteDatabaseService {
public class MySqliteOpenHelper extends SQLiteOpenHelper {
private static SQLiteOpenHelper mInstance;
private static final String name = "xx.db";
public static SQLiteOpenHelper getInstance(Context context){
if(mInstance == null){
mInstance = new MySqliteOpenHelper(context, name, null, 1);
}
return mInstance;
}
private MySqliteOpenHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
}
/**
* 用来创建表、视图、触发器、存储过程
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table fish(_id integer primary key autoincrement," +
"name text)");
}
//数据库升级
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
数据库的增删改查
public class FishService {
private SQLiteOpenHelper mOpenHelper;
public FishService(Context context) {
super();
// TODO Auto-generated constructor stub
mOpenHelper = MySqliteOpenHelper.getInstance(context);
}
//添加
public void add(String name){
//获取可写的数据库
SQLiteDatabase database = mOpenHelper.getWritableDatabase();
if(database.isOpen()){
//插入数据
database.execSQL("insert into fish(name) values(?)", new Object[]{name});
database.close();
}
}
//查询所有
public List<Fish> queryAll(){
List<Fish> fishs = new ArrayList<Fish>();
SQLiteDatabase database = mOpenHelper.getReadableDatabase();
if(database.isOpen()){
//结果集
Cursor c = database.rawQuery("select * from fish", null);
while(c.moveToNext()){
int _id = c.getInt(0);
String name = c.getString(1);
fishs.add(new Fish(_id, name));
}
//关闭
c.close();
database.close();
}
return fishs;
}
//更新
public void update(Fish fish){
SQLiteDatabase database = mOpenHelper.getWritableDatabase();
if(database.isOpen()){
database.execSQL("update fish set name = ? where _id = ?", new Object[]{fish.name,fish._id});
database.close();
}
}
//删除
public void delete(int _id){
SQLiteDatabase database = mOpenHelper.getWritableDatabase();
if(database.isOpen()){
database.execSQL("delete from fish where _id = ?", new Object[]{_id});
database.close();
}
}
}
还有一种增删改查的方法
public class OtherFishService {
private SQLiteOpenHelper mOpenHelper;
public OtherFishService(Context context) {
super();
mOpenHelper = MySqliteOpenHelper.getInstance(context);
}
//添加
public void add(String name){
//获取可写的数据库
SQLiteDatabase database = mOpenHelper.getWritableDatabase();
if(database.isOpen()){
//插入数据
// database.execSQL("insert into fish(name) values(?)", new Object[]{name});
ContentValues values = new ContentValues();
values.put("name", name);
database.insert("fish", "_id", values);
database.close();
}
}
//查询所有
public List<Fish> queryAll(){
List<Fish> fishs = new ArrayList<Fish>();
SQLiteDatabase database = mOpenHelper.getReadableDatabase();
if(database.isOpen()){
//结果集
// Cursor c = database.rawQuery("select * from fish", null);
Cursor c = database.query(
"fish",
new String[]{"*"},
null,
null,
null,
null,
null);
while(c.moveToNext()){
int _id = c.getInt(0);
String name = c.getString(1);
fishs.add(new Fish(_id, name));
}
//关闭
c.close();
database.close();
}
return fishs;
}
//更新
public void update(Fish fish){
SQLiteDatabase database = mOpenHelper.getWritableDatabase();
if(database.isOpen()){
// database.execSQL("update fish set name = ? where _id = ?", new Object[]{fish.name,fish._id});
ContentValues values = new ContentValues();
values.put("name", fish.name);
database.update("fish",
values,
" _id = ?",
new String[]{fish._id+""});
database.close();
}
}
//删除
public void delete(int _id){
SQLiteDatabase database = mOpenHelper.getWritableDatabase();
if(database.isOpen()){
// database.execSQL("delete from fish where _id = ?", new Object[]{_id});
database.delete("fish",
" _id = ?",
new String[]{_id+""});
database.close();
}
}
}
数据类集
//创建此对象集合是为了给数据库查询,接收返回的对象
public class Fish {
public int _id;
public String name;
public Fish() {
super();
// TODO Auto-generated constructor stub
}
public Fish(int _id, String name) {
super();
this._id = _id;
this.name = name;
}
@Override
public String toString() {
return "Fish [_id=" + _id + ", name=" + name + "]";
}
}
测试类
public class FishServiceTest extends AndroidTestCase {
public void testAdd() throws Exception{
FishService fs = new FishService(getContext());
for(int i = 0;i< 10;i++){
fs.add("张三"+i);
}
}
public void testQueryAll() throws Exception{
FishService fs = new FishService(getContext());
List<Fish> list = fs.queryAll();
for(Fish f:list){
Log.i("i", f.toString());
}
}
public void testUpdate() throws Exception{
FishService fs = new FishService(getContext());
fs.update(new Fish(1,"李四"));
List<Fish> list = fs.queryAll();
for(Fish f:list){
Log.i("i", f.toString());
}
}
public void testDelete() throws Exception{
FishService fs = new FishService(getContext());
fs.delete(1);
List<Fish> list = fs.queryAll();
for(Fish f:list){
Log.i("i", f.toString());
}
}
}
public class OtherFishServiceTest extends AndroidTestCase {
public void testAdd() throws Exception{
OtherFishService fs = new OtherFishService(getContext());
for(int i = 0;i< 10;i++){
fs.add("张三"+i);
}
}
public void testQueryAll() throws Exception{
OtherFishService fs = new OtherFishService(getContext());
List<Fish> list = fs.queryAll();
for(Fish f:list){
Log.i("i", f.toString());
}
}
public void testUpdate() throws Exception{
OtherFishService fs = new OtherFishService(getContext());
fs.update(new Fish(11,"李四"));
List<Fish> list = fs.queryAll();
for(Fish f:list){
Log.i("i", f.toString());
}
}
public void testDelete() throws Exception{
OtherFishService fs = new OtherFishService(getContext());
fs.delete(11);
List<Fish> list = fs.queryAll();
for(Fish f:list){
Log.i("i", f.toString());
}
}
}