知识点具体解释:http://blog.csdn.net/zhaoyazhi2129/article/details/9025995

详细代码:

MainActivity.java

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

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

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

package com.example.android_sqlite.dao;

import com.example.android_sqlite.domain.Users;

public interface UserDao extends BaseDao<Users, Integer>{

}

UserDaoImple.java

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

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());
}
} }

赵雅智_使用SQLiteDatabase操作SQLite数据库及事务的更多相关文章

  1. 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

    1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...

  2. Android——使用SQLiteDatabase操作SQLite数据库

    除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持 NUL ...

  3. Android——采用SQLiteDatabase操作SQLite数据库

    除了能够使用文件或SharedPreferences存储数据.还能够选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持 NUL ...

  4. 赵雅智_运用Bitmap和Canvas实现图片显示,缩小,旋转,水印

    上一篇已经介绍了Android种Bitmap和Canvas的使用,以下我们来写一个详细实例 http://blog.csdn.net/zhaoyazhi2129/article/details/321 ...

  5. 赵雅智:android教学大纲

    带下划线为详细内容链接地址.点击后可跳转.希望给大家尽一些微薄之力.眼下还在整理中 教学章节 教学内容 学时安排 备注 1 Android高速入门 2 Android模拟器与常见命令 3 Androi ...

  6. Java操作Sqlite数据库-jdbc连接

    Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...

  7. Android中操作SQLite数据库

    我又回到了安卓的学习当中,忙来忙去终于忙的差不多有时间做自己的事情了,这感觉实在是太棒了!!本来想写android的控件以及他们的监视器的,但是我查了查android的手册,基本上都能查到,但是查有些 ...

  8. 如何C#操作SQLite数据库

    或许有人之前在java开发中使用过SQLite,对它有些印象.在用Winform或Wpf开发小应用程序时,发现用SQLite数据库也是不错的.就像一个会员管理软件,开发完毕后,可以省去想sqlserv ...

  9. C#操作SQLite数据库增、删、改、查 欢迎转载

    C#操作SQLite数据库增.删.改.查 欢迎转载 转载记得留下链接地址哦!!! 最近项目上要使用SQLite数据库,不怕大伙笑话毕业四年多了,一直使用Oracle或者MySQL或者SQLServer ...

随机推荐

  1. Android处理错误json数据

    此前一直都没遇到也一直相信服务端返回的json数据基本是正确的,直到我们的android端一直崩溃,并在友盟上查到一直报如下的错误: com.google.gson.JsonSyntaxExcepti ...

  2. [Angular] Getting to Know the @Attribute Decorator in Angular

    So when you using input binding in Angular, it will always check for update. If you want to improve ...

  3. TeamTalk Android代码分析(业务流程篇)---消息发送和接收的整体逻辑说明

    第一次纪录东西,也没有特别的顺序,想到哪里就随手画了一下,后续会继续整理- 6.2消息页面动作流程 6.2.1 消息页面初始化的总体思路 1.页面数据的填充更新直接由页面主线程从本地数据库请求 2.数 ...

  4. Ambari-单步创建cluster

    Ambari-单步创建 总体介绍 单步创建集群即对于集群内每个服务的安装.开启.组成服务的每个组件host信息的设置等操作都进行一次ambari-server的restAPI的调用. 这样做提高了对集 ...

  5. Registry Connect failed,Windows服务诊断

    Message:Connection failed for 192.168.32.38_e-futrueserer. Details:Windows Registry Datasource: Regi ...

  6. 【POJ 2828】Buy Tickets

    [题目链接] http://poj.org/problem?id=2828 [算法] 离线用线段树维护序列即可 [代码] #include <algorithm> #include < ...

  7. WebRTC学习与DEMO资源一览

    一. WebRTC学习 1.1   WebRTC现状 本人最早接触WebRTC是在2011年底,那时Google已经在Android源码中加入了webrtc源码,放在/external/webrtc/ ...

  8. VS自动注释——GhostDoc

    直接上图片,使用步骤是按顺序来的: 安装就不多说了,直接下一步,下一步.直接讲讲如何自定义注释规则 软件下载链接:http://pan.baidu.com/s/1dF5TSel 密码:peuz 链接: ...

  9. UWP tips (与wp8.1的不同)

    一.异步调用之后,要更新UI时,代码如下 await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =&g ...

  10. memcache session共享问题(ubuntu)

    memcache session共享问题 环境:三台ubuntu 12.04.5虚拟机,均安装php-fpm,并重用了之前搭建的简单的负载均衡 u1(192.168.240.130)    u2(19 ...