java查询oracle数据库_Oracle数据库之java 从Oracle数据库到处数据到Elasticsearch全文检索库进行全文查询...

本文介绍如何使用Java从Oracle数据库提取数据,并将其导入到Elasticsearch以实现全文搜索。首先确保Elasticsearch环境搭建完成,然后在Java代码中建立连接,创建索引库,写入数据,最后执行搜索操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要向大家介绍了Oracle数据库之java 从Oracle数据库到处数据到Elasticsearch全文检索库进行全文查询,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。

首先编写代码前,要先把Elasticsearch环境搭建好(这个很简单,网上百度一大堆)。然后将elasticsearch jar包导入工程当中。

之后开始编码工作:

第一步:编写连接本地Elasticsearch环境的代码

public static Client client=null;

public static Client getClient(){

if(client !=null){

return client;

}

Settings settings = Settings.settingsBuilder().put("cluster.name","my-application").build();

try{

client = TransportClient.builder().settings(settings).build()

.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(null),9300));//如果是Null,则默认连接本地Ip

}catch(UnknownHostException e){

e.printStackTrace();

}

return client;

}

第二步,建立索引库和创建索引

public void createIndexResponse(String indexname, String type, Listjsondata){

//创建索引库 需要注意的是.setRefresh(true)这里一定要设置,否则第一次建立索引查找不到数据

IndexRequestBuilder requestBuilder = getClient().prepareIndex(indexname, type).setRefresh(true);

for(int i=0; i

requestBuilder.setSource(jsondata.get(i)).execute().actionGet();

}

}

/**

* 创建索引

* @param client

* @param jsondata

* @return

*/

public IndexResponse createIndexResponse(String indexname, String type,String jsondata){

IndexResponse response = getClient().prepareIndex(indexname, type)

.setSource(jsondata)

.execute()

.actionGet();

return response;

}

/**

* 执行搜索

* @param queryBuilder

* @param indexname

* @param type

* @return

*/

public Listsearcher(QueryBuilder queryBuilder, String indexname, String type){

Listlist = new ArrayList();//EsBean是数据库的字段

SearchResponse searchResponse = getClient().prepareSearch(indexname).setTypes(type)

.setQuery(queryBuilder)

.execute()

.actionGet();

SearchHits hits = searchResponse.getHits();

System.out.println("查询到记录数=" + hits.getTotalHits());

SearchHit[] searchHists = hits.getHits();

if(searchHists.length>0){

for(SearchHit hit:searchHists){

Integer id = (Integer)hit.getSource().get("id");

String name =  (String) hit.getSource().get("name");

String function =  (String) hit.getSource().get("funciton");

list.add(new EsBean(id, name, function));

}

}

return list;

}

第三步,写入实体类Esbean

public class Esbean{

private String reg_id;

private String organization;

省略setter和getter方法;

public EsBean(String reg_id,String organization){

super();

this.reg_id=reg_id;

this.organization=organization;

}

}

第四步,从oracle数据库中查询出数据导入到Esalticsearch库中

1 public class jdbc{

2       public  static jdbc dataFactory = new jdbc();

3       private static Connection conn;

4       static final String username="****";

5       static final String password="*****";

6       static final String url="***********";

7       public static synchronized Connection getInstance(){

8                 if(conn=null || conn.isClosed()){

9                       class.forName("oracle.jdbc.driver.OracleDriver");

10                    conn=DriverManager.getConnection(url,username,password);

11               }

12               return conn;

13            }

14 }

本文由职坐标整理并发布,希望对同学们学习Oracle有所帮助,更多内容请关注职坐标数据库Oracle数据库频道!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值