android中的sqlit3数据库进行手机应用软件开发(自写的一个财务管理软件,这里主要讲收入录入模块)
来源:互联网 发布:微信群控软件 技术原理 编辑:程序博客网 时间:2024/05/17 22:08
1.设计好数据库的表结构,用android提供的SQLiteOpenHelper接口来实现数据库的创建
。。。。
public class DBOpenHelper extends SQLiteOpenHelper{
private static final int VERSION = 1;
private static final String DBNAME ="account.db";
public DBOpenHelper(Context context){ //定义构造函数
super(context,DBNAME,null,VERSION); //重写基类的构造函数
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO 自动生成的方法存根
db.execSQL("create table tb_outacount(_id integer primary key,money decimal,time varchar(10),"+
"type varchar(10),address varchar(100),mark varchar(2000))");
db.execSQL("create table tb_inacount(_id integer primary key,money decimal,time varchar(10),"+
"type varchar(10),handler varchar(100),mark varchar(200))");
db.execSQL("create table tb_pwd(password varchar(20))");
db.execSQL("create table tb_flag(_id integer primary key,flag varchar(200))");
}
。。。。。。
2.根据tb_inacount 表结构(收入信息录入表),创建这个数据库表操作(增,删,改,查)公共类,写在****.***.DAO这个包下面
public class InacountDAO {
private DBOpenHelper helper;
private SQLiteDatabase db;
public InacountDAO(Context context){
helper = new DBOpenHelper(context);
}
/**
* 添加收入记录
*/
public void add(Tb_inacount tb_inacount){
db = helper.getWritableDatabase();
db.execSQL("insert into tb_inacount(_id,money,time,type,handler,mark) values (?,?,?,?,?,?)",
new Object[]{tb_inacount.get_id(),tb_inacount.getMoney(),tb_inacount.getTime(),tb_inacount.getType(),
tb_inacount.getHandle(),tb_inacount.getMark()});
}
/**
* 修改收入记录
* @param tb_inacount
*/
public void update(Tb_inacount tb_inacount){
db = helper.getWritableDatabase();
db.execSQL("update tb_inacount set money=?,time =?,type=?,handler=?,mark=? where _id=?",
new Object[]{tb_inacount.getMoney(),tb_inacount.getTime(),tb_inacount.getType(),
tb_inacount.getHandle(),tb_inacount.getMark(),tb_inacount.get_id()});
}
/**
* 返回结果集
* @param id
* @return
*/
public Tb_inacount find(int id){
db = helper.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from tb_inacount where _id=?", new String[]{String.valueOf(id)});
if(cursor.moveToNext()){
return new Tb_inacount(cursor.getInt(cursor.getColumnIndex("_id")),cursor.getDouble(cursor.getColumnIndex("money")),
cursor.getString(cursor.getColumnIndex("time")),cursor.getString(cursor.getColumnIndex("type")),
cursor.getString(cursor.getColumnIndex("handler")),cursor.getString(cursor.getColumnIndex("mark")));
}else{
return null;
}
}
/**
* 删除一系列不选定的id
* @param ids
*/
public void delete(Integer... ids){
if(ids.length > 0){
StringBuffer sb = new StringBuffer();
for(int i=0;i<ids.length;i++){
sb.append('?').append(',');
}
sb.deleteCharAt(sb.length() - 1);
db = helper.getWritableDatabase();
db.execSQL("delete from tb_inacount where _id in("+sb+")",(Object[])ids);
}
}
/**
* 返回Cursor 对象 供ListView SimpleCursorAdapter使用
* @return
*/
public Cursor getInAllDataCursor(){
db = helper.getWritableDatabase();
return db.rawQuery("select * from tb_inacount", null);
}
/**
* 分页显示收入结果集
* @param start 开始的位置
* @param count 一页显示几条
* @return
*/
public List<Tb_inacount> getScrolData(int start,int count){
List<Tb_inacount> tb_inacount = new ArrayList<Tb_inacount>();
db = helper.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from tb_inacount limit ?,?",
new String[]{String.valueOf(start),String.valueOf(count)});
while(cursor.moveToNext()){
tb_inacount.add(new Tb_inacount(cursor.getInt(cursor.getColumnIndex("_id")),cursor.getDouble(cursor.getColumnIndex("money")),
cursor.getString(cursor.getColumnIndex("time")),cursor.getString(cursor.getColumnIndex("type")),
cursor.getString(cursor.getColumnIndex("handler")),cursor.getString(cursor.getColumnIndex("mark"))));
}
return tb_inacount;
}
/**
* 返回当前结果集条数
* @return
*/
public long getCount(){
db = helper.getWritableDatabase();
Cursor cursor = db.rawQuery("select count(_id) from tb_inacount",null);
if(cursor.moveToNext()){
return cursor.getLong(0);
}else{
return 0;
}
}
/**
* 获取当前数据表中最大的ID
* @return
*/
public int getMaxId(){
db = helper.getWritableDatabase();
Cursor cursor = db.rawQuery("select max(_id) from tb_inacount", null);
if(cursor.moveToNext()){
return cursor.getInt(0);
}else{
return 0;
}
}
public Double getInSum(){
db = helper.getWritableDatabase();
Cursor cursor = db.rawQuery("select sum(money) from tb_inacount", null);
if(cursor.moveToNext()){
return cursor.getDouble(0);
}else{
return 0.0;
}
}
}
3. activity获取数据后,调用该方法对数据库进行操作
//数据库操申明对象
private Tb_inacount tb_inacount;
private InacountDAO inacountDAO;
// 为数据库操作申明对象
tb_inacount = new Tb_inacount(); //初始化
inacountDAO = new InacountDAO(AddinacountActivity.this);
获取数据并进行数据库操作
。。。。。
tb_inacount.set_id(inacountDAO.getMaxId()+1);
tb_inacount.setMoney(Double.parseDouble(money.getText().toString()));
tb_inacount.setTime(time.getText().toString());
tb_inacount.setType(type.getSelectedItem().toString());
tb_inacount.setHandle(handle.getText().toString());
tb_inacount.setMark(beizhu.getText().toString());
inacountDAO.add(tb_inacount);
new AlertDialog.Builder(AddinacountActivity.this).setTitle("系统信息")
.setMessage("增添收入成功,是否继续添加?")
.setPositiveButton("是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO 自动生成的方法存根
money.setText("");
time.setText("");
handle.setText("");
beizhu.setText("");
type.setSelection(0);
return ;
}
}).setNegativeButton("否", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO 自动生成的方法存根
Intent intent = new Intent(AddinacountActivity.this,FunctionActivity.class);
startActivity(intent);
finish();
}
}).show();
。。。。。。。
。。。。
public class DBOpenHelper extends SQLiteOpenHelper{
private static final int VERSION = 1;
private static final String DBNAME ="account.db";
public DBOpenHelper(Context context){ //定义构造函数
super(context,DBNAME,null,VERSION); //重写基类的构造函数
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO 自动生成的方法存根
db.execSQL("create table tb_outacount(_id integer primary key,money decimal,time varchar(10),"+
"type varchar(10),address varchar(100),mark varchar(2000))");
db.execSQL("create table tb_inacount(_id integer primary key,money decimal,time varchar(10),"+
"type varchar(10),handler varchar(100),mark varchar(200))");
db.execSQL("create table tb_pwd(password varchar(20))");
db.execSQL("create table tb_flag(_id integer primary key,flag varchar(200))");
}
。。。。。。
2.根据tb_inacount 表结构(收入信息录入表),创建这个数据库表操作(增,删,改,查)公共类,写在****.***.DAO这个包下面
public class InacountDAO {
private DBOpenHelper helper;
private SQLiteDatabase db;
public InacountDAO(Context context){
helper = new DBOpenHelper(context);
}
/**
* 添加收入记录
*/
public void add(Tb_inacount tb_inacount){
db = helper.getWritableDatabase();
db.execSQL("insert into tb_inacount(_id,money,time,type,handler,mark) values (?,?,?,?,?,?)",
new Object[]{tb_inacount.get_id(),tb_inacount.getMoney(),tb_inacount.getTime(),tb_inacount.getType(),
tb_inacount.getHandle(),tb_inacount.getMark()});
}
/**
* 修改收入记录
* @param tb_inacount
*/
public void update(Tb_inacount tb_inacount){
db = helper.getWritableDatabase();
db.execSQL("update tb_inacount set money=?,time =?,type=?,handler=?,mark=? where _id=?",
new Object[]{tb_inacount.getMoney(),tb_inacount.getTime(),tb_inacount.getType(),
tb_inacount.getHandle(),tb_inacount.getMark(),tb_inacount.get_id()});
}
/**
* 返回结果集
* @param id
* @return
*/
public Tb_inacount find(int id){
db = helper.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from tb_inacount where _id=?", new String[]{String.valueOf(id)});
if(cursor.moveToNext()){
return new Tb_inacount(cursor.getInt(cursor.getColumnIndex("_id")),cursor.getDouble(cursor.getColumnIndex("money")),
cursor.getString(cursor.getColumnIndex("time")),cursor.getString(cursor.getColumnIndex("type")),
cursor.getString(cursor.getColumnIndex("handler")),cursor.getString(cursor.getColumnIndex("mark")));
}else{
return null;
}
}
/**
* 删除一系列不选定的id
* @param ids
*/
public void delete(Integer... ids){
if(ids.length > 0){
StringBuffer sb = new StringBuffer();
for(int i=0;i<ids.length;i++){
sb.append('?').append(',');
}
sb.deleteCharAt(sb.length() - 1);
db = helper.getWritableDatabase();
db.execSQL("delete from tb_inacount where _id in("+sb+")",(Object[])ids);
}
}
/**
* 返回Cursor 对象 供ListView SimpleCursorAdapter使用
* @return
*/
public Cursor getInAllDataCursor(){
db = helper.getWritableDatabase();
return db.rawQuery("select * from tb_inacount", null);
}
/**
* 分页显示收入结果集
* @param start 开始的位置
* @param count 一页显示几条
* @return
*/
public List<Tb_inacount> getScrolData(int start,int count){
List<Tb_inacount> tb_inacount = new ArrayList<Tb_inacount>();
db = helper.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from tb_inacount limit ?,?",
new String[]{String.valueOf(start),String.valueOf(count)});
while(cursor.moveToNext()){
tb_inacount.add(new Tb_inacount(cursor.getInt(cursor.getColumnIndex("_id")),cursor.getDouble(cursor.getColumnIndex("money")),
cursor.getString(cursor.getColumnIndex("time")),cursor.getString(cursor.getColumnIndex("type")),
cursor.getString(cursor.getColumnIndex("handler")),cursor.getString(cursor.getColumnIndex("mark"))));
}
return tb_inacount;
}
/**
* 返回当前结果集条数
* @return
*/
public long getCount(){
db = helper.getWritableDatabase();
Cursor cursor = db.rawQuery("select count(_id) from tb_inacount",null);
if(cursor.moveToNext()){
return cursor.getLong(0);
}else{
return 0;
}
}
/**
* 获取当前数据表中最大的ID
* @return
*/
public int getMaxId(){
db = helper.getWritableDatabase();
Cursor cursor = db.rawQuery("select max(_id) from tb_inacount", null);
if(cursor.moveToNext()){
return cursor.getInt(0);
}else{
return 0;
}
}
public Double getInSum(){
db = helper.getWritableDatabase();
Cursor cursor = db.rawQuery("select sum(money) from tb_inacount", null);
if(cursor.moveToNext()){
return cursor.getDouble(0);
}else{
return 0.0;
}
}
}
3. activity获取数据后,调用该方法对数据库进行操作
//数据库操申明对象
private Tb_inacount tb_inacount;
private InacountDAO inacountDAO;
// 为数据库操作申明对象
tb_inacount = new Tb_inacount(); //初始化
inacountDAO = new InacountDAO(AddinacountActivity.this);
获取数据并进行数据库操作
。。。。。
tb_inacount.set_id(inacountDAO.getMaxId()+1);
tb_inacount.setMoney(Double.parseDouble(money.getText().toString()));
tb_inacount.setTime(time.getText().toString());
tb_inacount.setType(type.getSelectedItem().toString());
tb_inacount.setHandle(handle.getText().toString());
tb_inacount.setMark(beizhu.getText().toString());
inacountDAO.add(tb_inacount);
new AlertDialog.Builder(AddinacountActivity.this).setTitle("系统信息")
.setMessage("增添收入成功,是否继续添加?")
.setPositiveButton("是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO 自动生成的方法存根
money.setText("");
time.setText("");
handle.setText("");
beizhu.setText("");
type.setSelection(0);
return ;
}
}).setNegativeButton("否", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO 自动生成的方法存根
Intent intent = new Intent(AddinacountActivity.this,FunctionActivity.class);
startActivity(intent);
finish();
}
}).show();
。。。。。。。
- android中的sqlit3数据库进行手机应用软件开发(自写的一个财务管理软件,这里主要讲收入录入模块)
- 推荐自行开发的财务管理软件:“小掌柜”财务管理软件
- 手机应用软件开发的难度。
- android:手机财务管理系统
- android:手机财务管理系统
- 一个新手对软件开发的理解(写自第一个项目--Linpop之后)
- 财务管理软件的应用
- 计划写一个财务管理程序
- 自己写的一个导出的程序这里主要用到一下程序
- 命令行下查看android sqlit3数据库信息
- 这个文章主要是讲Android开发的四大组件
- 给xt800(手机)写一个hello world的内核模块
- 十大最炫酷的手机应用软件
- 明智软件开发——Ivar Jacobson博士上海英雄会演讲的主要思想
- python写的模块:财务管理中关于时间价值的函数
- 服务于3G手机的移动游戏应用软件开发环境
- 即时通讯目前主要的收入
- android手机删除自带的rom软件
- 柳传志做客西南联大讲坛:中国缺领军一面人才
- Qt5 error LNK2019 无法解析的外部符号 解决办法
- 获取iphone本机号码(在iOS 6.1, iPhone5 ,移动号码, xcode 4.6上测试通过)
- mybatis3.2入门
- java泛型
- android中的sqlit3数据库进行手机应用软件开发(自写的一个财务管理软件,这里主要讲收入录入模块)
- 地址栏中自动加入cookie信息解决
- Hibernate与各种数据库连接的配置详解
- jquery-mp3播放。
- CSDN的收藏
- 突发访问模式 burst access mode
- eip ebp esp
- 超级玛丽人和鱼类和睦相处可美啦
- 【巧妙设置轻松达到提升系统运行速度】