Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用$.get()将数据发送到servlet并插入mysql_Javascript_Mysql_Jquery_Servlets - Fatal编程技术网

Javascript 使用$.get()将数据发送到servlet并插入mysql

Javascript 使用$.get()将数据发送到servlet并插入mysql,javascript,mysql,jquery,servlets,Javascript,Mysql,Jquery,Servlets,最近我使用$.getJSON向flickr api发送请求以获取一些照片信息(我总共获得了100个数据) 在$.getJSON()的回调函数中,我使用$.each()和$.get('myServlet.do')将数据发送到servlet,然后插入MySQL数据库 我认为应该没有问题,但我发现如果我使用上述方法,我的数据库会有重复的数据,有人知道问题出在哪里吗 顺便说一句,当servlet收到时,数据被复制 如果有人能给我一些建议,我将不胜感激 这是我如何使用$.get()的代码: 恐怕我对ser

最近我使用
$.getJSON
flickr api发送请求以获取一些照片信息(我总共获得了100个数据) 在
$.getJSON()
的回调函数中,我使用
$.each()
$.get('myServlet.do')
将数据发送到servlet,然后插入MySQL数据库

我认为应该没有问题,但我发现如果我使用上述方法,我的数据库会有重复的数据,有人知道问题出在哪里吗

顺便说一句,当servlet收到时,数据被复制

如果有人能给我一些建议,我将不胜感激

这是我如何使用
$.get()
的代码:


恐怕我对servlet一无所知,但我可以从MySQL的角度来解决这个问题

在一个非常简单的层次上,如果您每次都从Flickr中提取相同的数据,然后将所有这些数据插入数据库,那么最终将得到重复的数据

INSERT
命令,不管它是如何包装的,都会添加一行数据。它不会检查数据是否已经存在

总的来说,你的问题有三种解决方案

1) 写一些检查项目是否已经存在的内容,然后根据需要运行
UPDATE
INSERT

2) 如果总是收集完整的数据集,并且没有任何依赖于ID列的数据,则可以在插入新数据之前删除所有现有数据。如果它是表中唯一的数据,则可以使用
TRUNCATE

3) 在MySQL中将适当的列标记为
唯一
。这将防止添加具有相同数据的另一行,但您的servlet可能不喜欢被传递错误

最简单的是解决方案2


您必须自己弄清楚这些解决方案是如何通过servlet实现的,但是如果有正确的概念,您应该能够找到一些东西。

如果不看一个
GET
的示例和您的servlet代码,我们将无法帮到您。不过,一般来说,您不应该使用
GET
来做任何改变服务器状态的事情
GET
请求是幂等的。使用
POST
查看任何更改服务器状态的内容。您好,谢谢您的回答,但我可能没有清楚地描述我遇到的问题,登录$。each()的回调函数显示数据没有重复,但servlet获取的数据以某种方式重复了。。。所以,这不是关于我应该如何为mysql做什么。我假设,如果数据库中有100行,那么运行你的东西,最后会有200行。然后是300、400等等。你是说即使你有一个空数据库,也要运行
$.get('myServlet.do')
多次获取所有内容?每次都是双倍吗?您如何/在何处看到数据被复制?我有一个空数据库,然后运行$.get('myServlet.do'),数据库中的数据“并非所有”都被复制,有些数据被多次复制,有些数据没有。所以我猜它的回调函数和servlet有问题。。。
$.getJSON('http://query.yahooapis.com/v1/public/yql?q=select id,title,location.latitude,location.longitude,dates.taken,farm,server,secret from flickr.photos.info where photo_id in' + '(select id from flickr.photos.search(0) where text=\"' + queryText + '\" and has_geo=1 and lat=22.993299484253 and lon=120.20359802246 and content_type=1 and radius=20 and api_key=\"' + appid + '\" limit 100 ) and api_key=\"' + appid + '\"&format=json',

function (data) {
  var clientTime = $('#clientTime').html();
  $.each(data.query.results.photo,

  function () {
    console.log(this.id + " " + this.title + " " + this.farm + " " + this.server + " " + this.dates.taken);
    $.post('insertphotoinfo.do', {
      id: encodeURI(this.id),
      title: encodeURI(this.title),
      farm: encodeURI(this.farm),
      server: encodeURI(this.server),
      secret: encodeURI(this.secret),
      takendate: encodeURI(this.dates.taken),
      latitude: encodeURI(this.location.latitude),
      longitude: encodeURI(this.location.longitude),
      clientTime: encodeURI(clientTime)
    },

    function (Result) {

    });
  });