通过z39.50协议用YAZ软件获取Marc数据(JAVA版)

目前网上没有找到相关正式可用的例子,于是自己花了一星期去看文档和前人写的例子(都是10多年前的帖子和资源),分享给大家,希望后来的和我一样的菜鸟能用到

  • 配置环境:安装yaz软件。官网:https://www.indexdata.com/resources/software/yaz/下载对应的版本后无脑安装就可以了。
  • 创建java项目,导入jar包,安装好的YAZ目录下有一个java文件项,里面有jar包。
  • 编写类就可以了。
    1.创建连接对象:需要地址端口
    2.设置连接的一些参数:密码,用户名,数据库名,查询方式
    3.定义查询语句
    4.连接(查询语句)
    5.接收结果
    6.取出内容
    7.关闭连接
public List<String> CNmarc(String host,int port,String username,String password,String datebase){Connection c=null; //声明连接Query q=null; //声明查询int n=0; // 声明尝试次数List<String> list =new ArrayList<String>(); // 返回的集合
     try {c=new Connection(host, port);//possibly set some options       可能设置一些选项c.option("elementSetName","F"); //设置简单或者复杂数据查询:  B or  F  -- 简单 or  复杂c.setDatabaseName(datebase);c.setUsername(username);c.setPassword(password);c.setSyntax("Unimarc");//数据格式c.connect(); //establishes connection 建立连接//查询语句StringBuilder queryBuilder = new StringBuilder();queryBuilder.append("@attr 1=7 ");//isbn 号 带不带  -  都可以(自己测试的结果)//978-7-5463-4045-6 西游记的   //9787508690254   行为设计学的queryBuilder.append("\"" +"9787508690254"+ "\"");Query query =new PrefixQuery(queryBuilder.toString());//创建查询类型和语句填充ResultSet set=c.search(query);//查询,并接收查询结果集/*测试时: 单取第一条byte[] b=set.getRecord(0).getContent();//取第一条结果集String st1 =new String(b,"gbk");//以gbk编码格式展示//   String st2=set.getRecord(0).render();//取出结果集第一条并断句展示(但是格式默认是gbk(或者获取的默认编码),无法再转码,如果你的程序是utf-8或者其他编码格式,会出现乱码)System.out.println("共:"+set.getHitCount()+"条");System.out.println("结果:"+st1);*/for(int i =0; i<set.getHitCount();i++){byte[] b=set.getRecord(i).getContent();String st1;try {st1 = new String(b,"gbk");list.add(st1);} catch (UnsupportedEncodingException e) { //编码转化失败}}}catch (ZoomException e) {//handle any protocol- or network-level errors//连接时有时会超时异常,解决办法:再次调用,并计数,超次数返回 空集合if(n<5) {n=n+1;//计数一次CNmarc(host,port,username,password,datebase);}else {return list;}} finally {c.close(); //close the socket 关闭连接}return list;

不会可以下载我的例子看(例子也差不多,类就是这个类)
分享一下文档:
资料参考:
http://zoom.z3950.org/api/zoom-1.4.html zoom文档
https://www.indexdata.com/resources/software/yaz/ YAZ官网
https://software.indexdata.com/yaz4j/site/apidocs/index.html jar文档
https://software.indexdata.com/yaz/doc/ YAZ文档
(外国兄弟文档写的真的烂…我tm读了一星期都没看懂什么玩意)

通过z39.50协议用YAZ软件获取Marc数据(JAVA版)相关推荐

  1. Z39.50客户端源代码(C#)

    再VB.Delphi时代,实现z39.50客户端有一个yaz vbzoom的工具包,利用第三方开发包我们可以很快的实现.本文介绍如何使用c#实现Z39.50客户端,当然是纯源码方式不依赖第三方.如果您 ...

  2. Marc数据解析和拼接(java版)

    解析marc数据: marc数据分为三部分:标识区.目次区.数据记录区.详情请仔细查找资料,本文不多介绍,直接上代码 import java.util.ArrayList; import java.u ...

  3. Z39.50 图书信息检索

    Z39.50图书信息检索协议 ISO图书信息检索协议 https://www.loc.gov/z3950/agency/ Z39.50相关资源 开放的免费服务器和相关相关程序配置等 http://zo ...

  4. marc数据个人心得

    最近在做一个实习的图书馆系统,因为涉及到书城,自然会涉及到marc数据的编码与解码,研究了下GB/T 20163-2006的中国档案机读目录格式(在中国国家标准网里可以查到)里面涉及到很多的分段符号, ...

  5. GK309协议电子工牌数据模拟器+Socket数据发送 JAVA版-源码

    GK309协议电子工牌数据模拟器+Socket数据发送 JAVA版-源码 说明 源码 EXE执行文件 说明 单JAVA文件,直接运行main方法即可. 只做了GK309的基础位置数据模拟: 0x01 ...

  6. 网页marc数据采集器(国图marc数据批量下载)

    在国内CNMARC又分为国图格式.CALIS格式.而国图数据最权威的机构当属国家图书馆OPAC.国图页面提供机读格式,可以通过技术手段获取到完整marc数据.本软件使用自己开发的html解析器,无内存 ...

  7. C#高效编程:改进C#代码的50个行之有效的办法(第2版)(奋斗的小鸟)_PDF 电子书

    下载地址:http://pan.baidu.com/share/link?shareid=1689099661&uk=721744522 QQ:2864670220  (提供电子书提取密码) ...

  8. RTMP协议推流,助力视频数据轻松上云

    近年来,在平安城市.雪亮工程.智安小区等政策的扶持下,视频监控逐渐成为市场的新增长点.而云计算.大数据.智能AI等技术,也为视频监控领域的技术提升.智能化改革提供了强大的支持. 视频监控数据一般存储在 ...

  9. 串口调试助手源代码 qt编写 带协议解析 帧判断 通信数据保存等功能

    串口调试助手源代码 qt编写 带协议解析 帧判断 通信数据保存等功能 使用说明介绍 1.功能介绍: 采用Qt编写的串口调试助手工具,功能齐全,除了具备十六进制收发及文件保存等基本功能外,还具有以下功能 ...

最新文章

  1. 数据不平衡(class_weight、评估方法、上采样、下采样)、详解及实战
  2. 27.能否在构造函数中抛出异常?析构函数呢?
  3. Vue——组件化开发DEMO
  4. java无权图求最短路径_求有权图和无权图的最短路径
  5. mysql磁盘io高是什么造成_FAQ | 是什么导致MySQL数据库服务器磁盘I/O高(本文章来自知数堂)...
  6. 深入理解分布式系统原理与设计
  7. Java 3D编程实践_Java 3D编程实践——网络上的三维动画[学习笔记]
  8. 2020 年百度之星·程序设计大赛 - 测试赛1001 度度熊保护村庄
  9. 从C#到Nodejs,从windowns到mac
  10. 软件测试的金字塔体系--从1个中心到5个要素
  11. 基于jsp java的员工绩效考核管理系统
  12. php 车牌号 正则,php正则验证车牌格式的函数
  13. 计算机硬件故障照片,计算机硬件故障的识别与处理
  14. 【简写】编程领域简写
  15. Q3净利同比下滑超30%,脱离小米的“云米们”还能长大吗?
  16. Anaconda使用总结
  17. java如何保证一个方法只能执行一次
  18. 工厂应该怎样规划生产品质管理?
  19. python实战爬虫有道翻译与解决{“errorCode”:50}反爬虫问题
  20. 哔哩下载姬 - DownKyi

热门文章

  1. 微信浏览器页面样式不生效
  2. 轴承故障诊断分类中常用的一些数据集介绍和获取方法
  3. 9.cisco思科模拟器端口安全和故障排除练习题
  4. 2019第一季度全球流媒体战况如何?
  5. GNU/Linux智能Makefile模板(多目录,多文件)
  6. 开源材料数据库Materials Project
  7. mysql workbench crows foot_一步一步设计你的数据库(三)
  8. 【蓝桥杯每日一练】—字符逆序
  9. 一个食品专业本科生的自白:能不吃最好别吃
  10. 【码上实战】【立体匹配系列】经典SGM:(2)代价计算