赵雅智_使用SQLiteDatabase操作SQLite数据库及事务
知识点具体解释: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数据库及事务的更多相关文章
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...
- Android——使用SQLiteDatabase操作SQLite数据库
除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持 NUL ...
- Android——采用SQLiteDatabase操作SQLite数据库
除了能够使用文件或SharedPreferences存储数据.还能够选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持 NUL ...
- 赵雅智_运用Bitmap和Canvas实现图片显示,缩小,旋转,水印
上一篇已经介绍了Android种Bitmap和Canvas的使用,以下我们来写一个详细实例 http://blog.csdn.net/zhaoyazhi2129/article/details/321 ...
- 赵雅智:android教学大纲
带下划线为详细内容链接地址.点击后可跳转.希望给大家尽一些微薄之力.眼下还在整理中 教学章节 教学内容 学时安排 备注 1 Android高速入门 2 Android模拟器与常见命令 3 Androi ...
- Java操作Sqlite数据库-jdbc连接
Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...
- Android中操作SQLite数据库
我又回到了安卓的学习当中,忙来忙去终于忙的差不多有时间做自己的事情了,这感觉实在是太棒了!!本来想写android的控件以及他们的监视器的,但是我查了查android的手册,基本上都能查到,但是查有些 ...
- 如何C#操作SQLite数据库
或许有人之前在java开发中使用过SQLite,对它有些印象.在用Winform或Wpf开发小应用程序时,发现用SQLite数据库也是不错的.就像一个会员管理软件,开发完毕后,可以省去想sqlserv ...
- C#操作SQLite数据库增、删、改、查 欢迎转载
C#操作SQLite数据库增.删.改.查 欢迎转载 转载记得留下链接地址哦!!! 最近项目上要使用SQLite数据库,不怕大伙笑话毕业四年多了,一直使用Oracle或者MySQL或者SQLServer ...
随机推荐
- Python Study(02)之 Context Manager
上下文管理器(context manager)是Python2.5开始支持的一种语法,用于规定某个对象的使用范围.一旦对象进入或者离开该使用范围,会有特殊操作被调用 (比如为对象分配或者释放内存).它 ...
- 腾讯云 ubuntuservermysql安装和外网訪问
1 腾讯云 购买ubuntu 默认账户是ubuntu(因为winscp 使用ubuntu没有权限写文件) 因为腾讯云主机ubuntu系统默认username为ubuntu,不喜欢每次做什么都要sudo ...
- hashmap的put方法源码分析
put主源码如下: public V put(K key, V value) { if (key == null) return putForNullKey(value); int hash = ha ...
- 基于FPGA的VGA可移植模块终极设计
一.VGA的诱惑 首先,VGA的驱动,这事,一般的单片机是办不到的:由于FPGA的速度,以及并行的优势,加上可现场配置的优势,VGA的配置,只有俺们FPGA可以胜任,也只有FPGA可以随心所欲地配置( ...
- 用select拼接insert into,单引号转义
SELECT 'INSERT INTO dbo.CMS_Transformation ( TransformationName , TransformationCode , Transformatio ...
- python spark kmeans demo
官方的demo from numpy import array from math import sqrt from pyspark import SparkContext from pyspark. ...
- [C#] 隐式类型var —— 示例解析
从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型var.隐式类型可以替代任何类型,它的具体类型由编译器根据上下文推断而出. 下面就让我来总结下隐式类型的一些特点: 1.va ...
- 4. Median of Two Sorted Arrays[H]两个有序数组的中位数
题目 There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the midian of the ...
- DateTime? 定义的日期变量如何format
DateTime? dateTime; dateTime.Value.ToString("yy-MM-dd")
- 微信小程序引用阿里巴巴矢量图标iconfont
最近在写微信小程序,但是引用图片,导致项目文件太大,所以就想到引用阿里巴巴矢量图标的方法 第一步:下载阿里巴巴矢量图代码: 第二步:将下载下来的文件中iconfont.ttf转换即可.转换地址:htt ...