我想把数据能保存到文件中又能保存到数据库中,用java的多线程如何实现这个功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想把数据能保存到文件中又能保存到数据库中,用java的多线程如何实现这个功能相关的知识,希望对你有一定的参考价值。

这个问题...不知道是你没说清楚还是我没看明白.不过简单的实现以下还是比较简单的

既然多线程,那么,不同的保存方式就是两个不同的线程.

然后你在调用的时候new 出来这个d对象,然后运行这个d对象,就可以开了一个线程执行了.

interface A
    boolean 保存(Entity entity);

class B implements A
    public boolean 保存(Entity entity)
        //文件保存
    

class C implements A
    public boolean 保存(Entity entity)
        //数据库保存
    

class Main
     public static void main(String[]args)
        Entity entity = new Entity();
        D d = new D(entity);
        new Thread(D).start();
    

class D implements Runnable
    private A a;
    private Entity entity;
    public D(Entity entity)
        this.entity = entity;
        //用随机数得到1,2,如果是1则将a初始化为B,如果是2,则将a初始化为c
    
    public void run()
        a.保存(entity);
    

当然还有另外一个思路.

你可以生成两个Entity的队列

一个队列是要用文件保存的任务.一个队列是用数据库保存的队列.

你在保存的时候,仅仅需要往不同的队列里放,然后就由专门的线程来去保存即可


手打~~如果还有问题,可追问.不过大概明天才能回答,我一天回答一两个问题

参考技术A 实现这个功能和多线程有关系么?拿到数据就一份存文件,一份插入数据库呗。。。追问

这是一个课设要求 要求保存数据的时候能随机的选择一种保存方式保存

参考技术B 把保存操作写成函数,然后用线程分别调用追问

我想知道那个Runnable接口在哪实现

我想把阿里云服务器中Mysql数据库中查询到的数据保存为txt,然后再下载到客户端,但遇到如下问题:

但select now from XX where XXX --------into outfile 'c:/xiazai/dd.txt' lines terminated by '\r\n'";
这样只能保存一次,再次查询后无法覆盖掉以前的dd.txt,我该如何实现我想要的功能?

首先mysql 不支持你想要的功能 。他只是简单的导出。
如果你想导出时,如果存在删掉。
那么你就需要自己封装一个小程序 。
逻辑如下:
程序在执行你的into outfile sql 时,先去检查目录下是否存在你的文件 。
如果存在,先干 掉。再执行。追问

请给一段代码,实现检查目录下是否存在文件,若存在,删除!我试了好多办法删除,都显示有错误,麻烦帮帮忙啊!

参考技术A 把原来的dd.txt删掉,或者移到其他地方追问

dd.txt删掉,那没指定文件和类型,怎么保存?移到其他地方又是什么意思?

追答

你运行一次已经生成了这个文件
你要重新运行
就把这个生成的文件先删掉
然后在运行命令

追问

那样当然可以,但是这样的话用户每次下载,都得去服务器上删除上次的文件,不仅繁琐,而且客户体验是不容许的。况且我要求的是多用户同时查询,高频率查询!

以上是关于我想把数据能保存到文件中又能保存到数据库中,用java的多线程如何实现这个功能的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET把数据查询出来保存在了一个datatable里面了,之后我想把这个datatable的数据导入到access数据库

SQL中,我想把SQL查询分析器查询出来的结果,导出到EXCEL表格,求各位大侠指点。

WPF的DataGrid数据保存与更改

我想在移动到另一个页面时保存动态数据

我想把阿里云服务器中Mysql数据库中查询到的数据保存为txt,然后再下载到客户端,但遇到如下问题:

ASP.NET中如何上传图片到服务器所制定的一个文件夹中去?