首页 > 其他分享 >进行开发4

进行开发4

时间:2024-02-26 09:23:26浏览次数:22  
标签:helper 提示 数据库 Dao 开发 context 操作 进行

在用测试数据简单完成记账的功能后,开始着手将测试数据替换为数据库的储存,通过数据书的读写来实现记账功能的实现。在学习Javaweb的过程中,数据库的操作都是在Dao层实现的,所以自己从网上查了查是否可以用Dao层实现安卓数据库的增删改查,答案是肯定的。自己于是将所有关于数据库的操作封装在Dao中,通过调用Dao层来实现数据库的操作,写的不太好,不过总算可以用。感觉安卓数据库SQL语句比Javaweb中数据库的操作简单好多。

遇到的困难:

1、进入到主界面时,系统提示已停止运行。原因:表不存在,安卓数据库只会初始化一次数据库中的表,第二次运行APP时由于数据库已存在,不再调用oncreate()方法。解决办法:卸载app重新安装,或重写updata()方法。

2、运行时提示数据库中某列不存在,这个是个低级错误,但自己经常犯,以后在建立数据库时一定要明确变量的名字,方便后期的数据库操作。

3、提示数据库存在泄露问题,自己当时就很懵,从网上查了下,大概意思就是在活动销毁的同时将数据库的连接关掉。可是还是提示泄露,没有办法,自己就尝试着优化下代码,当自己把Dao对象作为全局变量后,整个页面由只生成了一个数据库接口,提示少了那么几行,后来从网上看见将数据库操作对象改为单例模式,确保只生成一个对象,我看到后不得不佩服前辈们的经验。

4、提示主线程中进行了大量的耗时操作,可能会导致app停止运行。   原因; 每次数据列表发生变化时,主界面读取数据库中的数据,不断对总金额进行刷新。 解决办法:在子线程中获取组件,进行组件的刷新。

~~~

数据库操作对象单例模式代码:

~~~
private static DatabaseHelper helper=null;
    private SQLiteDatabase db;
    public synchronized static DatabaseHelper getHelper(Context context){
        if(helper==null){
            helper=new DatabaseHelper(context);
        }
        return helper;
    };
    public AccountDao(Context context){
             getHelper(context);
         db=helper.getWritableDatabase();
    }

 

标签:helper,提示,数据库,Dao,开发,context,操作,进行
From: https://www.cnblogs.com/muzhaodi/p/18033624

相关文章

  • spring6入门开发案例步骤
    引入依赖创建类和方法编写配置文件4.测试Spring是如何创建对象的呢?原理是什么?//dom4j解析beans.xml文件,从中获取class属性值,类的全类名//通过反射机制调用无参数构造方法创建对象Classclazz=Class.forName("com.atguigu.spring6.bean.HelloWorld");//Objectobj......
  • 案例开发-日程管理
    功能登陆注册日程的增删改查根据MVC三层架构,View层用HTML+CSS+JS写的,Model层是Service和Dao负责对业务的处理,Control层是负责接收客户端的请求,使用service接口响应用户请求。MVC项目架构模式MVC(ModelViewController)是软件工程中的一种软件架构模式,它把软件系统分为模型......
  • C# vs2015 .dll模块联合开发好的应用程序进行调试
    C#vs2015.dll模块联合开发好的应用程序进行调试右键项目->属性,1.点击“调试”侧边菜单,在“启动操作”选项中选择“启动外部程序”,然后选择应用程序的exe文件的路径2.点击“生成”侧边菜单,在“输出”选项中“输出路径”中选择将当前调试项目的最新dll文件(最新的代码)输出到应用......
  • 使用`react-hooks写法`对`antd的Upload.Dragger上传组件`进行二次封装
    使用react-hooks写法对antd的Upload.Dragger上传组件进行二次封装预期对antd的Upload.Dragger组件进行二次封装,让它的使用方法和Upload.Dragger组件保持一致。让该组件能自动把数据放到对应后端服务器中。让该组件能的value值如果没上传,为数组形式。如果没有值,为空数组。如......
  • 家庭小账本开发(7)登录校验功能
    在登陆时,前端与后端的交互过程如下①前端vue中将输入框中的username和password传给后端springboot②后端对传过来的(username和password)与后端数据库内容进行对比,如果用户存在--------利用jwt令牌生成token传给前端③vue前端将后端传过来的token值储存起来(一般储存到localStorag......
  • 2.21软件开发
    事情变得有些复杂了,这篇文章写得跨度有些大了,有些细节直接跳过了没讲清楚,我学习的进度有些中断了,但我仍不断尝试。四、后端详解我在后端编写主要是用java,当然对其他开发语言熟悉的也可以使用其他语言开发后端。现在我就java编写后端api的讲解。主要框架springboot,开发工具myecli......
  • .Net 6 WebAPI 使用JWT进行 授权认证配置
    .Net6WebAPI使用JWT进行授权认证1、安装组件(Nuget)Microsoft.AspNetCore.Authentication.JwtBearer2、Program.cs配置//授权认证(使用JWT)builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(o=>{//私钥varsecretByte=Enco......
  • 全栈开发 - 从 Vue 配置中解决 CORS 跨域问题【亲测有效】
    一、CORS跨域问题解决1.1、前言如果你后端使用的是微服务项目,通过配置网关可以很好的解决跨域问题;如果你使用SpringBoot+Vue来写项目,可以在Controller上加@CrossOrigin来解决跨域,但是一旦你在后端配置了拦截器(比如通过HandlerInterceptor配置登录拦截器),那么此时再解......
  • 家庭记账本开发(4)
    接昨天的已经完成后端数据表的增删改查,并且接口已经测试完成,无误。今天开始前端先分析前端需要的界面:①登录界面②管理员界面③用户界面同时管理员界面和用户界面中又包含多个界面:收入具体界面和支出具体界面和首页显示总账等信息  今天先将前端界面配置好,创建vue项目......
  • Taurus.MVC WebMVC 入门开发教程1:框架下载环境配置与运行
    前言:之前有网友说Mvc系列的教程对新手不友好,因此补充新手入门系列教程。在开始使用Taurus.Mvc 进行Web应用开发之前,建议可以观摩一下之前的文章:WebAPI系列教程因为两者的教程,有相通的部分,唯一的差别部分,在于Web应用涉及到UI界面。本系列的目录大纲为:Taurus.MVCWebMVC......