昨天完成设置爬虫的任务后,今天又要开始es的学习了,捣鼓了这几天,方法都是错误的,跟需求不一样。
领导昨天给了我参考的代码,今天带着参考的代码继续学习。
之前连接数据库用的是logstash,也可以用kafka带的包,但是我们的需求要灵活并且需要稳定,所以需要自己写一个数据库的连接,正好昨天用到了jdbctemplate,今天就用上了。
首先是jdbctemplate连接数据库,就不详细写了,然后是将数据写成json格式,使用的是alibaba的fastjson库
首先是导入pom:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.37</version>
</dependency>
然后直接使用put方法就可以了,非常的简单,下面是我的转化类:
package news;
import com.alibaba.fastjson.JSONObject;
import dao.JdbcTemplateDao;
import util.Simplified;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class upload {
JdbcTemplateDao template = new JdbcTemplateDao();
public List<JSONObject> wrapData(String ids) {
String sql = "select id,source_url,site,pubtime,insert_time,news_type" +
"from news where id in(" + ids + ")";
List<Map<String, Object>> dblist = template.getTemplate().queryForList(sql);
SimpleDateFormat dateFormatYYYYMMDDHHMMSS = new SimpleDateFormat("yyyyMMddHHmmss");
List<JSONObject> docs = new ArrayList<JSONObject>();
for (Map<String, Object> row : dblist) {
JSONObject doc = new JSONObject();
long id = Lon