当前位置: 首页 > news >正文

小鱼在线网站建设科技资讯网站有哪些

小鱼在线网站建设,科技资讯网站有哪些,制作什么网站好,网站技术维护摘要#xff1a;使用Java语言进行各类应用程序的快速开发成为目前比较主要且流行的开发方式。JDBC是 Java 语言中用来连接和操作关系型数据库的 API#xff0c;在业务程序与关系型数据库通信时#xff0c;必然会使用JDBC驱动。 本文将通过国产关系型数据库AntDB中的JDBC为大…摘要使用Java语言进行各类应用程序的快速开发成为目前比较主要且流行的开发方式。JDBC是 Java 语言中用来连接和操作关系型数据库的 API在业务程序与关系型数据库通信时必然会使用JDBC驱动。 本文将通过国产关系型数据库AntDB中的JDBC为大家着重介绍JDBC如何在关系型数据库中发挥驱动作用同时向大家展示AntDB在JDBC驱动方面的创新特性。 关键字JDBC双引擎语法安全加强批量更新 ​JDBC简介 JDBC是Java数据库连接Java Database Connectivity一套操作数据库的规范接口。这套规范接口经过多次版本迭代目前使用最多的规范接口是JDBC4.x。关于JDBC规范相关的说明请参考本文后续中的参考资料章节。 AntDB中JDBC的使用方式 AntDB的JDBC驱动是基于开源数据库PostgreSQL数据库的JDBC驱动进行的二次开发因此大部分使用方式与PostgreSQL的使用方式相同。为了区分与PostgreSQL的区别AntDB的URL中支持两种连接方式 -jdbc:postgresql://ip:port/dbname这种方式是AntDB最初提供的驱动中使用的连接方式为了兼容PostgreSQL的使用习惯因此进行了保留 -jdbc:antdb://ip:port/dbname这种方式是目前AntDB主推的连接方式用于区分AntDB与其他数据库的连接方式。 例如 String url jdbc:antdb://10.1.1.1:6655/antdb?grammaroracle;String user user;String password xxxx;Connection conn null;try { conn DriverManager.getConnection(url, user, password); conn.setAutoCommit(false); PreparedStatement psmt conn.prepareStatement(insert into test1 values(?,abc)); for(int i 1; i 10; i ){ psmt.setInt(1,i); psmt.execute(); } conn.commit(); psmt.close(); conn.close();}catch (SQLException ex){ System.out.println(ex.getMessage());}finally { if(conn ! null) { conn.close(); }} AntDB的JDBC新特性 1.双引擎支持 AntDB支持Oracle和PostgreSQL双存储引擎并且可以进行在会话级存储引擎的动态调整。因此AntDB在JDBC驱动层进行了双引擎的适配开发。目前AntDB的JDBC支持如下两种方式进行双引擎支持。 - 物理连接级支持 通过在JDBC的URL中指定参数’grammar’来对物理连接使用的语法进行控制。可指定为 oracle 例如 jdbc:antdb://10.1.1.1:6655/antdb?grammaroracle;此时通过该URL创建的物理连接的默认使用的是Oracle语法用户可以使用Oracle的相关语法对AntDB进行相关的数据操作。 postgres 例如 jdbc:antdb://10.1.1.1:6655/antdb?grammarpostgres;此时通过该URL创建的物理连接的默认使用的是PostgreSQL语法用户可以使用PostgreSQL的相关语法对AntDB进行相关的数据操作。 - 会话级支持 在用户SQL执行之前通过JDBC提供的接口execute/executeQuery来执行’set grammarxxx’其中xxx可为 oracle 该SQL执行之后该会话后续执行的所有SQL都可以使用Oracle语法进行后续的数据操作。 postgres 该SQL执行之后该会话后续执行的所有SQL都可以使用PostgreSQL语法进行后续的数据操作。 - 服务实例级支持 通过在AntDB中执行如下SQL就可以将服务实例的语法统一进行修改 alter system set grammar to oracle ;select  pg_reload_conf();2.安全加强 目前AntDB内核层面支持scram-sha-256、md5、password等口令认证方式具体参见参考资料部分而客户端的JDBC只能支持md5和password两种口令认证方式。考虑到scram-sha-256是目前提供的方法中最安全的一种口令认证方式特此AntDB对JDBC驱动进行了该认证方式的适配。 使用最新版的AntDB的JDBC驱动下载地址http://www.antdb.net/download即可使用上述的任意一种认证方式。 3.批量删除性能优化 JDBC4的规范中提供了一类批量处理的规范接口addBatch/executeBatch/clearBatch等通过使用这些接口可以降低应用程序APP与数据库的通信次数大幅降低网络压力提升业务的处理性能。 例如批量删除表t中的数据1~100通过一次网络通信来删除数据库中的相应行记录。 PreparedStatement psmt conn.prepareStatement(delete from t where c1?);for(int i 1; i 100; i ){ psmt.setInt(1,i); psmt.addBatch();}psmt.executeBatch()上述例子中通过网络抓包发现上述的100次删除操作应用程序只与数据库进行了一次通信 上述处理中APP通过批量更新特性一个批次删除了数据库中100条记录由于减少了网络通信的次数利用数据库服务端的处理能力大幅提升了批量删除的性能。但是目前的AntDB数据库服务端接收到合并在一起的多个参数时会逐个进行解析然后一条一条执行开源PostgreSQL也是同样的处理逻辑。 该执行效率比较低下在大数据量删除的场合下影响数据的删除效率。基于该背景AntDB对JDBC驱动进行了优化。通过在JDBC的URL中指定如下参数可批量对数据库进行删除大幅提升删除的效率。 -reWriteBatchedDeletestrue时jdbc驱动内部会改写SQL将上述SQL会改写成delete from t1 where id in (1,2,3...) -reWriteBatchedDeleteSize指定时改写后的SQL会按照指定的批次进行删除例如reWriteBatchedDeleteSize设置为3时改写后的SQL就以3为单位对所有数据分批执行例如delete from t1 where id in (1,2,3)delete from t1 where id in (4,5,6)...... 通过该优化AntDB的JDBC驱动的批量删除性能得到大幅提升例如指定为10000时性能提示150倍左右。 图1 AntDB中DELETE性能优化效果 4. Oracle兼容性增强 为了支撑Oracle语法环境下的一些数据类型目前AntDB的Oracle语法环境下JDBC驱动对如下的Oracle数据类型进行了适配通过该适配Oracle语法下对下述数据类型进行操作时就同Oracle的JDBC操作方式保持一致不需要额外进行转换。 -varchar2 -nvarchar2 -rowid -oracle.date -raw 同时在支持上述数据类型时为了考虑与开源框架的支持例如mybatisAntDB的JDBC驱动中对如下接口也进行了强化开源PostgreSQL这些接口将直接抛出异常。 - CallableStatement.getNString(int) - PreparedStatement.setNString(int, String) - ResultSet.getNString(int) - ResultSet.getNString(String) AntDB后续优化思路 目前的AntDB的JDBC已经能够满足大部分业务的应用场景但也有一部分内部实现没有完全支持JDBC4.x规范会抛出异常开源PostgreSQL也存在类似问题。后续的话根据业务需要会对这部分接口进行强化。例如 -PreparedStatement.setNClob -CallableStatement.getNClob -ResultSet.getNClob -PreparedStatement.setNCharacterStream -CallableStatement.getNCharacterStream -ResultSet.getNCharacterStream -Etc. 参考资料 JDBC specification参考 -JDBC 4.1 Specification (JDBC 4.1). Available at https://download.oracle.com/otndocs/jcp/jdbc-4_1-mrel-spec/index.html - JDBC 4.0 Specification (JDBC 4.0). Available at http://jcp.org/en/jsr/detail?id221 - JDBC 3.0 Specification (JDBC 3.0). Available at http://jcp.org/en/jsr/detail?id54 -JDBC 2.1 API (JDBC 2.1). Available at http://www.oracle.com/technetwork/java/download-141179.html - JDBC 2.0 Standard Extension API (JDBC extension specification). Available at http://www.oracle.com/technetwork/java/download-141179.html -JDBC 1.22 API (JDBC 1.22). Available at http://www.oracle.com/technetwork/java/download-141179.html AntDB的JDBC相关资料 - 手册 https://jdbc.postgresql.org/documentation/、http://www.antdb.net/72_product - 下载 http://www.antdb.net/download - AntDB的口令认证方式 https://www.postgresql.org/docs/current/auth-password.html 关于AntDB数据库 AntDB数据库始于2008年是亚信科技自主研发的分布式关系型数据库品牌AntDB-M是面向高性能内存型数据库是AntDB的子产品之一在运营商的核心系统上为全国24个省份的10亿多用户提供在线服务具备高性能、弹性扩展、高可靠等产品特性峰值每秒可处理百万笔通信核心交易保障系统持续稳定运行近15年并在通信、金融、交通、能源、物联网等行业成功商用落地。
http://www.huolong8.cn/news/410250/

相关文章:

  • 中企动力网站互联网舆情监测中心待遇
  • 网站开发 调试河北建筑培训网
  • 网站建设平台招商建筑工找活哪个平台好
  • 咸宁网站设计网站备案能不能出现世界
  • 莘县网站定制合肥网站建设sina
  • 怎么学习企业网站维护wordpress 登陆信息
  • 网站不备案可以登录吗品牌网站建设的好的案例
  • 企业网站建设的趋势推广营销大的公司
  • 正规网站建设套餐报价微信小程序怎么添加到桌面
  • 可以为自己的小说建设网站英语课件做的好的网站
  • 机关网站建设咨询网站搭建
  • 威海微网站建设淮南建设网站
  • 网站的关键词怎么设置ftp如何上传网站
  • 茂名网站制作推广网站开发电脑
  • 有学做美食的网站吗爱站工具包怎么使用
  • 科技公司网站响应式商城系统哪家的好
  • 客户关系管理系统案例中山市企业网站seo哪家好
  • 摄影师 网站 模板泰州百度seo
  • 网页版邮箱网站谷歌seo做哪些
  • 网站被k的迹象企业网站建设 百度文库
  • 莱芜网站建设哪家好seo建站优化价格表
  • 网站开发方案 文档新闻稿代写
  • 品牌网站建设找哪家江宁做网站
  • 有帮忙做幻灯片的网站么网站漂浮广告
  • 购物网站开发教程 视频山东住建局和城乡建设厅官网
  • 杭州富阳网站建设陕西省建设网三类人员
  • 合肥网站制作网站网站相似度检测 站长
  • 成都专业网站排名推广成都市网站建设
  • 建设网站的成本中国菲律宾男篮直播
  • 什么网站权重快天津市做网站的公司有哪些