sqlite的初级使用及单元测试实例

package com.gxa.db;

public class User {
    private int id;
    private String name;
    private String pwd;
    private int age;
    private String sex;
    public User(int id, String name, String pwd, int age, String sex) {
        this.id = id;
        this.name = name;
        this.pwd = pwd;
        this.age = age;
        this.sex = sex;
    }
    public User(String name, String pwd, int age, String sex) {
        this.name = name;
        this.pwd = pwd;
        this.age = age;
        this.sex = sex;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", pwd=" + pwd + ", age="
                + age + ", sex=" + sex + "]";
    }
    
}
package com.gxa.db;

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

public class MyDatabaseHelper extends SQLiteOpenHelper {
    //TEXT字符串 VARCHAR  INT INTEGER numeric(10,2) real小数  blob二进制数据
    /**
     * unique 唯一性约束
     * not null 不为空约束
     * check 检查性约束
     * primary key 主键约束
     */
    public static final String TAB_USER = "CREATE TABLE IF NOT EXISTS T_USER(" 
            +"id integer primary key autoincrement,"
            +"name varchar(20) UNIQUE,"
            +"pwd text default(‘123‘),"
            +"age integer NOT NULL,"
            +"sex text check(sex in(‘f‘,‘m‘))"
            +")";
    public MyDatabaseHelper(Context context) {
        super(context, "user.db", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(TAB_USER);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        
    }
}
package com.gxa.db;

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

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

public class UserDao {
    public MyDatabaseHelper helper;
    public UserDao(Context context){
        helper = new MyDatabaseHelper(context);
    }
    public void addUser(User user){
        //id NULL
        SQLiteDatabase db = helper.getWritableDatabase();
        db.execSQL("insert into t_user (name,pwd,age,sex) VALUES(?,?,?,?)", 
                new Object[]{user.getName(),user.getPwd(),user.getAge(),user.getSex()});
        db.close();
    }
    public void update(int id,String name){
        SQLiteDatabase db = helper.getWritableDatabase();
        db.execSQL("update t_user set name=? where id= ?",
                new Object[]{name,id});
        db.close();
    }
    public void delete(int id){
        SQLiteDatabase db = helper.getWritableDatabase();
        db.execSQL("delete from t_user where id=?",new Object[]{id});
        db.close();
    }
    public List<User> queryAll(){
        List<User> users = new ArrayList<User>();
        SQLiteDatabase db = helper.getReadableDatabase();
        User user = null;
        Cursor cursor = db.query("t_user", null, null, null, null, null, null);
        if (cursor!=null) {
            while(cursor.moveToNext()){
                int id = cursor.getInt(cursor.getColumnIndex("id"));
                int age = cursor.getInt(cursor.getColumnIndex("age"));
                String name = cursor.getString(cursor.getColumnIndex("name"));
                String pwd = cursor.getString(cursor.getColumnIndex("pwd"));
                String sex = cursor.getString(cursor.getColumnIndex("sex"));
                user = new User(id, name, pwd, age, sex);
                users.add(user);
            }
            cursor.close();
        }
        db.close();
        return users;
    }
}
package com.gxa.db;

public class Constant {
    public static final String TAB_NAME = "t_user";
}
package com.gxa.db;

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

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
package com.gxa.db;

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

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
时间: 2024-10-07 20:18:46

sqlite的初级使用及单元测试实例的相关文章

[Sqlite]--&gt;嵌入式数据库事务理解以及实例操作

SQLite 事务(Transaction) 事务(Transaction)是一个对数据库执行工作单元.事务(Transaction)是以逻辑顺序完成的工作单位或序列,可以是由用户手动操作完成,也可以是由某种数据库程序自动完成. 事务(Transaction)是指一个或多个更改数据库的扩展.例如,如果您正在创建一个记录或者更新一个记录或者从表中删除一个记录,那么您正在该表上执行事务.重要的是要控制事务以确保数据的完整性和处理数据库错误. 实际上,您可以把许多的 SQLite 查询联合成一组,把所

Android SQLite相关应用-SQLiteOpenHelper无法新建实例

============问题描述============ 我全部给截图吧,新手.这种问题想不到,找不出,问题所在.. 会的劳烦一下,非常感谢 ============解决方案1============ 将new DBServer中的context修改为context.getApplicationContext()试试.

ROI区域图像叠加&amp;初级图像混合 综合实例

将addWeighted函数与ROI函数封装到ROI_LinearBlending中 //---------------------------------[ROI_LinearBlending()]------------------------------------- // 函数名:ROI_LinearBlending() // 描述:线性混合实现函数,指定区域线性图像混合.利用cv::addWeighted()函数结合定义 // 感兴趣区域ROI,实现自定义区域的线性混合 //-----

java sqlite配置和自定义函数

资源 jetty Jetty Downloads地址 sqlite sqlite JDBC Driver 地址:bitbucket代码托管 和 Github代码托管 jetty配置sqlite 在jetty里的配置(工程MWeb为例) /MWeb/WebContent/WEB-INF/jetty-web.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE Configure PUBLIC &q

sqlite 的基本使用2

sqlite的运算符有好几种,算术运算符,比较运算符,逻辑运算符,位运算符 1,算术运算符 算术运算符主要有 + - * . % (取余)这个很简单,举一个例子就行,要达到这样的效果需要格式化行输出 .mode line sqlite> select 20 % 3; 20 % 3 = 2 sqlite> 2,比较运算符 比较运算符,只要学习过语言的基本都知道,无非就是 > ,<, ==,!=, <>(不等),>=,<=,!<(不小于),!>(不大

第3章 单元测试

一.单元测试的基本知识 1.传统的单元测试 2.集成测试 3.优秀的单元测试 4.一个简单的单元测试实例 5.测试驱动开发 6.总结 二.单元测试基础练习 1.单元测试框架 2.LogAn项目的第一个单元测试 3.更多MSTest的测试特性 4.实验8 5.实验9 6.总结 三.使用桩对象解除依赖 1.桩对象 2.发现LogAn对文件系统的依赖 3.重构设计增强了可测试性 4.总结 四.MSTest数据驱动测试 官方教程链接为:http://msdn.microsoft.com/zh-cn/li

AngularJs单元测试

这篇文章主要介绍了angularJS中的单元测试实例,本文主要介绍利用Karma和Jasmine来进行ng模块的单元测试,并用Istanbul  来生成代码覆盖率测试报告,需要的朋友们可以参考下,以下可全都是干货哦! 当ng项目越来越大的时候,单元测试就要提上日程了,有的时候团队是以测试先行,有的是先实现功能,后面再测试功能模块,这个各有利弊,今天主要说说利用karma和jasmine来进行ng模块的单元测试. 一.Karma+Jasmine+ Istanbul Karma是Testacular

Visual Studio 单元测试之五---数据库测试

原文:Visual Studio 单元测试之五---数据库测试 数据库的单元测试主要是测试数据库中的数据是否符合特定的条件,Visual Studio 2010支持下面几种数据的单元测试类型(Visual Studio 2008 不支持数据库测试): 类型 说明 Data Checksum 对数据进行Checksum检验 Empty ResultSet 测试执行的SQL语句返回结果集是否为空 Execution Time 测试执行时间 Expected Schema 测试结果集中的列和数据类型是

SQLite应用详解

转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/45788793 SQLite是D.Richard Hipp用C语言编写的开源嵌入式引擎,它可以在所有主要的操作系统上运行.值得一提的是,袖珍型的SQLite竟然可以支持高达2TB大小的数据库,每个数据库都是以单个文件的形式存在,这些数据都是以B-Tree的数据结构形式存储在磁盘上.在事务处理方面,SQLite通过数据库级上的独立性和共享锁来实现独立事务处理.这意味着多个进程可以在同一时间从