安卓实训第十二天(补充部分)---Sqlite数据库的创建和改变,以及使用SQLiteDataBase完成CRUD操作

本文详细介绍了一个基于SQLite的数据库创建过程,包括如何通过Java代码实现数据库的创建、表结构的更新,以及基本的增删改查操作。此外还提供了完整的代码示例和测试案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、数据库的创建

DatabaseHelper.java

[java]
  1. package com.example.android_sqlite.database;  
  2.   
  3. import android.content.Context;  
  4. import android.database.sqlite.SQLiteDatabase;  
  5. import android.database.sqlite.SQLiteDatabase.CursorFactory;  
  6. import android.database.sqlite.SQLiteOpenHelper;  
  7.   
  8. public class DatabaseHelper extends SQLiteOpenHelper {  
  9.   
  10.     /** 
  11.      *  
  12.      * @param context 
  13.      *            :上下文对象 
  14.      * @param name 
  15.      *            :数据库名称 
  16.      * @param factory 
  17.      *            :cursor工厂对象,可以设置null.采用默认的CursorFactory对象 
  18.      * @param version 
  19.      *            :数据库版本号 
  20.      */  
  21.     public DatabaseHelper(Context context, String name, CursorFactory factory,  
  22.             int version) {  
  23.         super(context, name, factory, version);  
  24.     }  
  25.   
  26.     /** 
  27.      * 当数据库第一次创建的时候会调用这个方法 
  28.      */  
  29.     @Override  
  30.     public void onCreate(SQLiteDatabase db) {  
  31.         db.execSQL("create table users(userid integer primary key autoincrement,username varchar(20))");  
  32.     }  
  33.   
  34.     /** 
  35.      * 当数据库的版本升级的时候,自动调用这个方法(根据数据库的版本号) 
  36.      */  
  37.     @Override  
  38.     public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {  
  39.   
  40.     }  
  41.   
  42. }  
package com.example.android_sqlite.database;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {

	/**
	 * 
	 * @param context
	 *            :上下文对象
	 * @param name
	 *            :数据库名称
	 * @param factory
	 *            :cursor工厂对象,可以设置null.采用默认的CursorFactory对象
	 * @param version
	 *            :数据库版本号
	 */
	public DatabaseHelper(Context context, String name, CursorFactory factory,
			int version) {
		super(context, name, factory, version);
	}

	/**
	 * 当数据库第一次创建的时候会调用这个方法
	 */
	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL("create table users(userid integer primary key autoincrement,username varchar(20))");
	}

	/**
	 * 当数据库的版本升级的时候,自动调用这个方法(根据数据库的版本号)
	 */
	@Override
	public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {

	}

}


测试类

[java]
  1. package com.example.android_sqlite.test;  
  2.   
  3. import com.example.android_sqlite.database.DatabaseHelper;  
  4.   
  5. import android.test.AndroidTestCase;  
  6.   
  7. public class DatabaseTese extends AndroidTestCase {  
  8.     public void createDatabase() {  
  9.         DatabaseHelper dh = new DatabaseHelper(getContext(), "csdn.db"null1);  
  10.         dh.getWritableDatabase();  
  11.     }  
  12. }  
package com.example.android_sqlite.test;

import com.example.android_sqlite.database.DatabaseHelper;

import android.test.AndroidTestCase;

public class DatabaseTese extends AndroidTestCase {
	public void createDatabase() {
		DatabaseHelper dh = new DatabaseHelper(getContext(), "csdn.db", null, 1);
		dh.getWritableDatabase();
	}
}

输出结果:

 

二、用CMD控制台命令来完成对数据库的操作(复制来源于赵雅智的博客,因为她整理的很好):

acb shell

挂到linux空间



 

打开data空间



打开数据库



查找表


查看创建表语句


插入表数据



查看表数据


修改id为3的名字为Devy


删除id=2的数据



查询前3条记录


查询含有Tom的数据


查询含有Tom的个数



修改表结构:

1.更改数据库版本号(每次更新都一定要进行版本的升级)

2.更新语句一条一条写,不能并列写

例如:

[java]
  1. public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {  
  2.     db.execSQL("alter table users add userage integer;<span style="font-family: Arial, Helvetica, sans-serif;">alter table users add usersalary doouble</span>");  
  3. }  
public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
	db.execSQL("alter table users add userage integer;<span style="font-family: Arial, Helvetica, sans-serif;">alter table users add usersalary doouble</span>");
}
上面语句只能执行“;”前的语句,后面的无法插入。

所以要将代码改为下式代码,才能两条语句都执行。

[java]
  1. public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {  
  2.     db.execSQL("alter table users add userage integer");  
  3.     db.execSQL("alter table users add usersalary doouble");  
  4. }  
public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
	db.execSQL("alter table users add userage integer");
	db.execSQL("alter table users add usersalary doouble");
}


具体代码:

创建数据库代码:DatabaseHelper

[java]
  1. package com.example.android_sqlite.database;  
  2.   
  3. import android.content.Context;  
  4. import android.database.sqlite.SQLiteDatabase;  
  5. import android.database.sqlite.SQLiteDatabase.CursorFactory;  
  6. import android.database.sqlite.SQLiteOpenHelper;  
  7.   
  8. public class DatabaseHelper extends SQLiteOpenHelper {  
  9.     // 数据库名称   
  10.     private static final String DATABASENAME = "csdn.db";  
  11.     // 数据库更新版本号   
  12.     private static int databaseBersion = 2;  
  13.   
  14.     /** 
  15.      *  
  16.      * @param context 
  17.      *            :上下文对象 
  18.      * @param name 
  19.      *            :数据库名称 
  20.      * @param factory 
  21.      *            :cursor工厂对象,可以设置null.采用默认的CursorFactory对象 
  22.      * @param version 
  23.      *            :数据库版本号 
  24.      */  
  25.     public DatabaseHelper(Context context) {  
  26.         super(context, DATABASENAME, null, databaseBersion);  
  27.     }  
  28.   
  29.     /** 
  30.      * 当数据库第一次创建的时候会调用这个方法 
  31.      */  
  32.     @Override  
  33.     public void onCreate(SQLiteDatabase db) {  
  34.         db.execSQL("create table users(userid integer primary key autoincrement,username varchar(20))");  
  35.     }  
  36.   
  37.     /** 
  38.      * 当数据库的版本升级的时候,自动调用这个方法(根据数据库的版本号) 
  39.      */  
  40.     @Override  
  41.     public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {  
  42.         db.execSQL("alter table users add userage integer");  
  43.         db.execSQL("alter table users add usersalary doouble");  
  44.         System.out.println("-----------------升级了-----------------");  
  45.   
  46.     }  
  47.   
  48. }  
package com.example.android_sqlite.database;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {
	// 数据库名称
	private static final String DATABASENAME = "csdn.db";
	// 数据库更新版本号
	private static int databaseBersion = 2;

	/**
	 * 
	 * @param context
	 *            :上下文对象
	 * @param name
	 *            :数据库名称
	 * @param factory
	 *            :cursor工厂对象,可以设置null.采用默认的CursorFactory对象
	 * @param version
	 *            :数据库版本号
	 */
	public DatabaseHelper(Context context) {
		super(context, DATABASENAME, null, databaseBersion);
	}

	/**
	 * 当数据库第一次创建的时候会调用这个方法
	 */
	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL("create table users(userid integer primary key autoincrement,username varchar(20))");
	}

	/**
	 * 当数据库的版本升级的时候,自动调用这个方法(根据数据库的版本号)
	 */
	@Override
	public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
		db.execSQL("alter table users add userage integer");
		db.execSQL("alter table users add usersalary doouble");
		System.out.println("-----------------升级了-----------------");

	}

}

测试类:DatabaseTese.java

[java]
  1. package com.example.android_sqlite.test;  
  2.   
  3. import com.example.android_sqlite.database.DatabaseHelper;  
  4.   
  5. import android.test.AndroidTestCase;  
  6.   
  7. public class DatabaseTese extends AndroidTestCase {  
  8.     public void createDatabase() {  
  9.         DatabaseHelper dh = new DatabaseHelper(getContext());  
  10.         dh.getWritableDatabase();  
  11.     }  
  12. }  
package com.example.android_sqlite.test;

import com.example.android_sqlite.database.DatabaseHelper;

import android.test.AndroidTestCase;

public class DatabaseTese extends AndroidTestCase {
	public void createDatabase() {
		DatabaseHelper dh = new DatabaseHelper(getContext());
		dh.getWritableDatabase();
	}
}

运行结果如下:

控制台输出:


cmd命令行输出:


更多 0

 

四、使用SQLiteDatabase操作SQLite数据库及事务

 

MainActivity.java
  1. package com.example.android_sqlite;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5.   
  6. import com.example.android_sqlite.dao.impl.UserDaoImpls;  
  7. import com.example.android_sqlite.database.DatabaseHelper;  
  8.   
  9. public class MainActivity extends Activity {  
  10.     private UserDaoImpls userDaoImpls;  
  11.   
  12.     @Override  
  13.     protected void onCreate(Bundle savedInstanceState) {  
  14.         super.onCreate(savedInstanceState);  
  15.         setContentView(R.layout.activity_main);  
  16.   
  17.         // 创建数据库   
  18.         DatabaseHelper dh = new DatabaseHelper(this);  
  19.         userDaoImpls = new UserDaoImpls(dh);  
  20.     }  
  21.   
  22. }  
package com.example.android_sqlite;

import android.app.Activity;
import android.os.Bundle;

import com.example.android_sqlite.dao.impl.UserDaoImpls;
import com.example.android_sqlite.database.DatabaseHelper;

public class MainActivity extends Activity {
	private UserDaoImpls userDaoImpls;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		// 创建数据库
		DatabaseHelper dh = new DatabaseHelper(this);
		userDaoImpls = new UserDaoImpls(dh);
	}

}


Users.java
  1. package com.example.android_sqlite.domain;  
  2.   
  3. import java.io.Serializable;  
  4.   
  5. public class Users implements Serializable{  
  6.     private static final long serialVersionUID = 1L;  
  7.     private Integer userId;  
  8.     private String userName;  
  9.     private Integer userAge;  
  10.     private Double userSalary;  
  11.   
  12.     public Users() {  
  13.         super();  
  14.     }  
  15.     public Users(Integer userId, String userName, Integer userAge,  
  16.             Double userSalary) {  
  17.         super();  
  18.         this.userId = userId;  
  19.         this.userName = userName;  
  20.         this.userAge = userAge;  
  21.         this.userSalary = userSalary;  
  22.     }  
  23.   
  24.     public Integer getUserId() {  
  25.         return userId;  
  26.     }  
  27.   
  28.     public void setUserId(Integer userId) {  
  29.         this.userId = userId;  
  30.     }  
  31.   
  32.     public String getUserName() {  
  33.         return userName;  
  34.     }  
  35.   
  36.     public void setUserName(String userName) {  
  37.         this.userName = userName;  
  38.     }  
  39.   
  40.     public Integer getUserAge() {  
  41.         return userAge;  
  42.     }  
  43.   
  44.     public void setUserAge(Integer userAge) {  
  45.         this.userAge = userAge;  
  46.     }  
  47.   
  48.     public Double getUserSalary() {  
  49.         return userSalary;  
  50.     }  
  51.   
  52.     public void setUserSalary(Double userSalary) {  
  53.         this.userSalary = userSalary;  
  54.     }  
  55.   
  56.     @Override  
  57.     public String toString() {  
  58.         return "Users [userId=" + userId + ", userName=" + userName  
  59.                 + ", userAge=" + userAge + ", userSalary=" + userSalary + "]";  
  60.     }  
  61.       
  62. }  
package com.example.android_sqlite.domain;

import java.io.Serializable;

public class Users implements Serializable{
	private static final long serialVersionUID = 1L;
	private Integer userId;
	private String userName;
	private Integer userAge;
	private Double userSalary;

	public Users() {
		super();
	}
	public Users(Integer userId, String userName, Integer userAge,
			Double userSalary) {
		super();
		this.userId = userId;
		this.userName = userName;
		this.userAge = userAge;
		this.userSalary = userSalary;
	}

	public Integer getUserId() {
		return userId;
	}

	public void setUserId(Integer userId) {
		this.userId = userId;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public Integer getUserAge() {
		return userAge;
	}

	public void setUserAge(Integer userAge) {
		this.userAge = userAge;
	}

	public Double getUserSalary() {
		return userSalary;
	}

	public void setUserSalary(Double userSalary) {
		this.userSalary = userSalary;
	}

	@Override
	public String toString() {
		return "Users [userId=" + userId + ", userName=" + userName
				+ ", userAge=" + userAge + ", userSalary=" + userSalary + "]";
	}
	
}


BaseDao.java
  1. package com.example.android_sqlite.dao;  
  2.   
  3. import java.util.List;  
  4.   
  5. public interface BaseDao<T, PK> {  
  6.     /** 
  7.      * 插入实体对象 
  8.      *  
  9.      * @param entity 
  10.      * @return 
  11.      */  
  12.     public boolean insert(T entity);  
  13.   
  14.     /** 
  15.      * 更新实体对象 
  16.      *  
  17.      * @param entity 
  18.      * @return 
  19.      */  
  20.     public boolean update(T entity);  
  21.   
  22.     /** 
  23.      * 删除实体对象 
  24.      *  
  25.      * @param entity 
  26.      * @return 
  27.      */  
  28.     public boolean delete(T entity);  
  29.   
  30.     /** 
  31.      * 根据id删除对象 
  32.      *  
  33.      * @param id 
  34.      * @return 
  35.      */  
  36.     public boolean deleteByid(PK id);  
  37.   
  38.     /** 
  39.      * 根据id查找对象 
  40.      *  
  41.      * @param id 
  42.      * @return 
  43.      */  
  44.     public T findByid(PK id);  
  45.   
  46.     /** 
  47.      * 查找所有 
  48.      *  
  49.      * @return 
  50.      */  
  51.     public List<T> findAll();  
  52.   
  53. }  
package com.example.android_sqlite.dao;

import java.util.List;

public interface BaseDao<T, PK> {
	/**
	 * 插入实体对象
	 * 
	 * @param entity
	 * @return
	 */
	public boolean insert(T entity);

	/**
	 * 更新实体对象
	 * 
	 * @param entity
	 * @return
	 */
	public boolean update(T entity);

	/**
	 * 删除实体对象
	 * 
	 * @param entity
	 * @return
	 */
	public boolean delete(T entity);

	/**
	 * 根据id删除对象
	 * 
	 * @param id
	 * @return
	 */
	public boolean deleteByid(PK id);

	/**
	 * 根据id查找对象
	 * 
	 * @param id
	 * @return
	 */
	public T findByid(PK id);

	/**
	 * 查找所有
	 * 
	 * @return
	 */
	public List<T> findAll();

}


UserDao.java
  1. package com.example.android_sqlite.dao;  
  2.   
  3. import com.example.android_sqlite.domain.Users;  
  4.   
  5.   
  6. public interface UserDao extends BaseDao<Users, Integer>{  
  7.   
  8. }  
package com.example.android_sqlite.dao;

import com.example.android_sqlite.domain.Users;


public interface UserDao extends BaseDao<Users, Integer>{

}


UserDaoImple.java
  1. package com.example.android_sqlite.dao.impl;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. import android.database.Cursor;  
  7. import android.database.sqlite.SQLiteDatabase;  
  8.   
  9. import com.example.android_sqlite.dao.UserDao;  
  10. import com.example.android_sqlite.database.DatabaseHelper;  
  11. import com.example.android_sqlite.domain.Users;  
  12.   
  13. public class UserDaoImpls implements UserDao {  
  14.     // 依赖对象   
  15.     private DatabaseHelper dh;  
  16.   
  17.     // 通过数据库的构造器实例化   
  18.     public UserDaoImpls(DatabaseHelper databaseHelper) {  
  19.         this.dh = databaseHelper;  
  20.     }  
  21.   
  22.     @Override  
  23.     public boolean insert(Users entity) {  
  24.         // 得到数据库操作对象   
  25.         try {  
  26.             SQLiteDatabase db = dh.getWritableDatabase();  
  27.             /* 
  28.              * 方法一 
  29.              * db.execSQL("insert into users(username,userage,usersalary) values('" 
  30.              * + entity.getUserName() + "'," + entity.getUserAge() + "," + 
  31.              * entity.getUserSalary() + ")"); 
  32.              */  
  33.   
  34.             // 方法二   
  35.             db.execSQL(  
  36.                     "insert into users(username,userage,usersalary) values(?,?,?)",  
  37.                     new Object[] { entity.getUserName(), entity.getUserAge(),  
  38.                             entity.getUserSalary() });  
  39.             db.close();  
  40.         } catch (Exception e) {  
  41.             e.printStackTrace();  
  42.             return false;  
  43.         }  
  44.         return true;  
  45.     }  
  46.   
  47.     @Override  
  48.     public boolean update(Users entity) {  
  49.         try {  
  50.             SQLiteDatabase db = dh.getWritableDatabase();  
  51.   
  52.             db.execSQL(  
  53.                     "update users set username=?,userage=?,usersalary=? where userid=?",  
  54.                     new Object[] { entity.getUserName(), entity.getUserAge(),  
  55.                             entity.getUserSalary(), entity.getUserId() });  
  56.             db.close();  
  57.         } catch (Exception e) {  
  58.             e.printStackTrace();  
  59.             return false;  
  60.         }  
  61.         return true;  
  62.     }  
  63.   
  64.     @Override  
  65.     public boolean delete(Users entity) {  
  66.   
  67.         return deleteByid(entity.getUserId());  
  68.     }  
  69.   
  70.     @Override  
  71.     public boolean deleteByid(Integer id) {  
  72.         try {  
  73.             SQLiteDatabase db = dh.getWritableDatabase();  
  74.   
  75.             db.execSQL("delete from users where userid=?"new Object[] { id });  
  76.             db.close();  
  77.         } catch (Exception e) {  
  78.             e.printStackTrace();  
  79.             return false;  
  80.         }  
  81.         return true;  
  82.     }  
  83.   
  84.     @Override  
  85.     public Users findByid(Integer id) {  
  86.         Users entity = null;  
  87.   
  88.         SQLiteDatabase db = dh.getWritableDatabase();  
  89.         Cursor c = db  
  90.                 .rawQuery(  
  91.                         "select userid,username,userage,usersalary from users where userid=?",  
  92.                         new String[] { id + "" });  
  93.         if (c.moveToNext()) {  
  94.   
  95.             entity = new Users();  
  96.             entity.setUserId(c.getInt(c.getColumnIndex("userid")));  
  97.             entity.setUserName(c.getString(c.getColumnIndex("userid")));  
  98.             entity.setUserAge(c.getInt(c.getColumnIndex("userage")));  
  99.             entity.setUserSalary(c.getDouble(c.getColumnIndex("usersalary")));  
  100.         }  
  101.         return entity;  
  102.     }  
  103.   
  104.     @Override  
  105.     public List<Users> findAll() {  
  106.         List<Users> entities = new ArrayList<Users>();  
  107.   
  108.         SQLiteDatabase db = dh.getWritableDatabase();  
  109.         Cursor c = db  
  110.                 .rawQuery(  
  111.                         "select userid,username,userage,usersalary from users",  
  112.                         null);  
  113.   
  114.         while (c.moveToNext()) {  
  115.             Users entity = new Users();  
  116.             entity.setUserId(c.getInt(c.getColumnIndex("userid")));  
  117.             entity.setUserName(c.getString(c.getColumnIndex("userid")));  
  118.             entity.setUserAge(c.getInt(c.getColumnIndex("userage")));  
  119.             entity.setUserSalary(c.getDouble(c.getColumnIndex("usersalary")));  
  120.             entities.add(entity);  
  121.         }  
  122.   
  123.         return entities;  
  124.     }  
  125.   
  126. }  
package com.example.android_sqlite.dao.impl;

import java.util.ArrayList;
import java.util.List;

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.example.android_sqlite.dao.UserDao;
import com.example.android_sqlite.database.DatabaseHelper;
import com.example.android_sqlite.domain.Users;

public class UserDaoImpls implements UserDao {
	// 依赖对象
	private DatabaseHelper dh;

	// 通过数据库的构造器实例化
	public UserDaoImpls(DatabaseHelper databaseHelper) {
		this.dh = databaseHelper;
	}

	@Override
	public boolean insert(Users entity) {
		// 得到数据库操作对象
		try {
			SQLiteDatabase db = dh.getWritableDatabase();
			/*
			 * 方法一
			 * db.execSQL("insert into users(username,userage,usersalary) values('"
			 * + entity.getUserName() + "'," + entity.getUserAge() + "," +
			 * entity.getUserSalary() + ")");
			 */

			// 方法二
			db.execSQL(
					"insert into users(username,userage,usersalary) values(?,?,?)",
					new Object[] { entity.getUserName(), entity.getUserAge(),
							entity.getUserSalary() });
			db.close();
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
		return true;
	}

	@Override
	public boolean update(Users entity) {
		try {
			SQLiteDatabase db = dh.getWritableDatabase();

			db.execSQL(
					"update users set username=?,userage=?,usersalary=? where userid=?",
					new Object[] { entity.getUserName(), entity.getUserAge(),
							entity.getUserSalary(), entity.getUserId() });
			db.close();
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
		return true;
	}

	@Override
	public boolean delete(Users entity) {

		return deleteByid(entity.getUserId());
	}

	@Override
	public boolean deleteByid(Integer id) {
		try {
			SQLiteDatabase db = dh.getWritableDatabase();

			db.execSQL("delete from users where userid=?", new Object[] { id });
			db.close();
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
		return true;
	}

	@Override
	public Users findByid(Integer id) {
		Users entity = null;

		SQLiteDatabase db = dh.getWritableDatabase();
		Cursor c = db
				.rawQuery(
						"select userid,username,userage,usersalary from users where userid=?",
						new String[] { id + "" });
		if (c.moveToNext()) {

			entity = new Users();
			entity.setUserId(c.getInt(c.getColumnIndex("userid")));
			entity.setUserName(c.getString(c.getColumnIndex("userid")));
			entity.setUserAge(c.getInt(c.getColumnIndex("userage")));
			entity.setUserSalary(c.getDouble(c.getColumnIndex("usersalary")));
		}
		return entity;
	}

	@Override
	public List<Users> findAll() {
		List<Users> entities = new ArrayList<Users>();

		SQLiteDatabase db = dh.getWritableDatabase();
		Cursor c = db
				.rawQuery(
						"select userid,username,userage,usersalary from users",
						null);

		while (c.moveToNext()) {
			Users entity = new Users();
			entity.setUserId(c.getInt(c.getColumnIndex("userid")));
			entity.setUserName(c.getString(c.getColumnIndex("userid")));
			entity.setUserAge(c.getInt(c.getColumnIndex("userage")));
			entity.setUserSalary(c.getDouble(c.getColumnIndex("usersalary")));
			entities.add(entity);
		}

		return entities;
	}

}


DatabaseTese.java
  1. package com.example.android_sqlite.test;  
  2.   
  3. import java.util.List;  
  4.   
  5. import com.example.android_sqlite.dao.UserDao;  
  6. import com.example.android_sqlite.dao.impl.UserDaoImpls;  
  7. import com.example.android_sqlite.database.DatabaseHelper;  
  8. import com.example.android_sqlite.domain.Users;  
  9.   
  10. import android.test.AndroidTestCase;  
  11.   
  12. public class DatabaseTeses extends AndroidTestCase {  
  13.   
  14.     public void createDatabase() {  
  15.         DatabaseHelper dh = new DatabaseHelper(getContext());  
  16.         dh.getWritableDatabase();  
  17.     }  
  18.   
  19.     public void insert() {  
  20.         DatabaseHelper databaseHelper = new DatabaseHelper(getContext());  
  21.         UserDao userDao = new UserDaoImpls(databaseHelper);  
  22.         Users entity = new Users(null"iii2"204000.0);  
  23.         boolean flag = userDao.insert(entity);  
  24.         assertEquals(true, flag);  
  25.     }  
  26.   
  27.     public void update() {  
  28.         DatabaseHelper databaseHelper = new DatabaseHelper(getContext());  
  29.         UserDao userDao = new UserDaoImpls(databaseHelper);  
  30.         Users entity = new Users(7"aaa"213000.0);  
  31.         boolean flag = userDao.update(entity);  
  32.         assertEquals(true, flag);  
  33.     }  
  34.   
  35.     public void delete() {  
  36.         DatabaseHelper databaseHelper = new DatabaseHelper(getContext());  
  37.         UserDao userDao = new UserDaoImpls(databaseHelper);  
  38.         Users entity = new Users(1""nullnull);  
  39.         boolean flag = userDao.delete(entity);  
  40.         assertEquals(true, flag);  
  41.     }  
  42.   
  43.     public void findById() {  
  44.         DatabaseHelper databaseHelper = new DatabaseHelper(getContext());  
  45.         UserDao userDao = new UserDaoImpls(databaseHelper);  
  46.         Users entity = userDao.findByid(3);  
  47.         if (entity != null) {  
  48.             System.out.println(entity.toString());  
  49.         } else {  
  50.             System.out.println("no message");  
  51.         }  
  52.   
  53.     }  
  54.   
  55.     public void findAll() {  
  56.         DatabaseHelper databaseHelper = new DatabaseHelper(getContext());  
  57.         UserDao userDao = new UserDaoImpls(databaseHelper);  
  58.         List<Users> entities = userDao.findAll();  
  59.         for (Users entity : entities) {  
  60.             System.out.println(entity.toString());  
  61.         }  
  62.     }  
  63.   
  64. }  
package com.example.android_sqlite.test;

import java.util.List;

import com.example.android_sqlite.dao.UserDao;
import com.example.android_sqlite.dao.impl.UserDaoImpls;
import com.example.android_sqlite.database.DatabaseHelper;
import com.example.android_sqlite.domain.Users;

import android.test.AndroidTestCase;

public class DatabaseTeses extends AndroidTestCase {

	public void createDatabase() {
		DatabaseHelper dh = new DatabaseHelper(getContext());
		dh.getWritableDatabase();
	}

	public void insert() {
		DatabaseHelper databaseHelper = new DatabaseHelper(getContext());
		UserDao userDao = new UserDaoImpls(databaseHelper);
		Users entity = new Users(null, "iii2", 20, 4000.0);
		boolean flag = userDao.insert(entity);
		assertEquals(true, flag);
	}

	public void update() {
		DatabaseHelper databaseHelper = new DatabaseHelper(getContext());
		UserDao userDao = new UserDaoImpls(databaseHelper);
		Users entity = new Users(7, "aaa", 21, 3000.0);
		boolean flag = userDao.update(entity);
		assertEquals(true, flag);
	}

	public void delete() {
		DatabaseHelper databaseHelper = new DatabaseHelper(getContext());
		UserDao userDao = new UserDaoImpls(databaseHelper);
		Users entity = new Users(1, "", null, null);
		boolean flag = userDao.delete(entity);
		assertEquals(true, flag);
	}

	public void findById() {
		DatabaseHelper databaseHelper = new DatabaseHelper(getContext());
		UserDao userDao = new UserDaoImpls(databaseHelper);
		Users entity = userDao.findByid(3);
		if (entity != null) {
			System.out.println(entity.toString());
		} else {
			System.out.println("no message");
		}

	}

	public void findAll() {
		DatabaseHelper databaseHelper = new DatabaseHelper(getContext());
		UserDao userDao = new UserDaoImpls(databaseHelper);
		List<Users> entities = userDao.findAll();
		for (Users entity : entities) {
			System.out.println(entity.toString());
		}
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值