java多线程操作数据库
现在有100万条数据,需要开5个线程往数据库里写,怎么保证数据库中数据不重复啊。最好有段示例代码...
现在有100万条数据,需要开5个线程 往数据库里写,怎么保证数据库中数据不重复啊。
最好有段示例代码 展开
最好有段示例代码 展开
展开全部
首先,你的确定数据的主键是否可以使用序列自增。
如果可以那么你可以在插入数据的时候获取序列里的值,这样数据就不会重复了。
其次,可以创建一个公共方法,进行数据的插入操作,并且方法类型声明为 static synchronized
类型,这样基本上就不会出现数据重复的现象了
最后,要看你是怎么获得待插入源数据了,这个获得数据源的方法也做成static synchronized的公
共方法。
如果可以那么你可以在插入数据的时候获取序列里的值,这样数据就不会重复了。
其次,可以创建一个公共方法,进行数据的插入操作,并且方法类型声明为 static synchronized
类型,这样基本上就不会出现数据重复的现象了
最后,要看你是怎么获得待插入源数据了,这个获得数据源的方法也做成static synchronized的公
共方法。
追问
主要问题是我怎么给在文件里的数据加上锁呢?
100万条数据都在txt文件中,每读1行都加上锁么?那我怎么保证下个线程读的是下一行呢?
追答
不是,不是给文件中的数据枷锁。
着这个样子的。
你先建立一个模块,比如是一个叫ReadData的方法。
这个方法的作用就是读取文件中的一行数据,每执行一次,就返回下一行数据。
然后你把这个方法定义成static synchronized类型的。
这样多线程调用这个方法的时候,获取的就是不重复且唯一的数据了。
展开全部
这些数据有record_id之类的东西吗,如果有可以在数据库中建表的时候,把这一列设置成unique的。
更多追问追答
追问
没有不重复列。。而且插入的数据库自增长产生的主键
追答
那一百万条数据是在文件中?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好我建议你系统的学习下李刚老师的疯狂Java视频课程和书籍 销量最好的
追问
我不能因为一个问题看全部的书吧。。 而且时间也不允许啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |