范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

SeataJDBC中的关键知识点

  背景
  Seata 对业务无侵入是通过数据源代理实现的,从下图中可看出,数据源代理的实现涉及到 DataSource、Connection 以及 Statement,这几个关键知识属于 JDBC 的范畴,所以本篇从 JDBC 的视角对他们进行介绍。
  一、JDBC 概述
  JDBC 代表 Java 数据库连接。JDBC 是一种 Java API,用于连接数据库并执行查询。它是 JavaSE(Java 标准版)的一部分。JDBC API 使用 JDBC 驱动程序连接数据库。
  在 JDBC 之前,ODBC API 是连接数据库并执行查询的数据库 API。但是,ODBC API 使用用 C 语言编写的 ODBC 驱动程序(即依赖于平台且不安全)。这就是为什么 Java 定义了自己的 API (JDBC API),它使用 JDBC 驱动程序(用 Java 语言编写)。当前的 JDBC 基于 X/Open SQL 调用级别接口。java.sql包包含 JDBC API 的类和接口。下面给出了 JDBC API 的流行接口列表:Driver interfaceConnection interfaceStatement interfacePreparedStatement interfaceCallableStatement interfaceResultSet interfaceResultSetMetaData interfaceDatabaseMetaData interfaceRowSet interface
  我们可以使用 JDBC API 来使用 Java 程序处理数据库,使用 JDBC 操作数据源大致需要以下几个步骤:与数据源建立连接。执行 SQL 语句,检索 SQL 执行结果关闭连接。二、与数据源建立链接
  Connection 是 JDBC 对数据源连接的抽象,一旦建立了连接,使用 JDBC API 的应用程序就可以对目标数据源执行查询和更新操作。
  获取Connection有两种途径2.1 DriverManager
  这是一个在 JDBC 1.0 规范中就已经存在、完全由 JDBC API 实现的驱动管理类。MYSQL5 之前需要Class.forName("com.mysql.cj.jdbc.Driver")的方式主动注册驱动。MYSQL5 之后的驱动包可以省略注册驱动的步骤,会自动加载 jar 包中 META-INF/services/java.sql.Driver 文件中的 JDBC 驱动类。通过getConnection获取数据库连接,如下:Connection conn = DriverManager.getConnection(url,username,password); 复制代码2.2 DataSource:
  DataSource 接口是 JDBC 2.0 API 中的新增内容,它提供了连接到数据源的另一种方法。使用 DataSource 对象是连接到数据源的首选方法。需要注意 JDBC API 中只提供了 DataSource 接口,DataSource 具体的实现由 JDBC 驱动程序提供。JDBC API 中定义了两个 DataSource 接口比较重要的扩展,用于支撑企业级应用。这两个接口分别为:ConnectionPoolDataSource   * 支持缓存和复用Connection对象,主流的数据库连接池也提供了DataSource接口的具体实现,如Druid提供了 DruidDataSource,生产中我们会使用数据库连接池所提供的池化的Connection。连接池通过对连接的复用,而不是每次需要操作数据源时都新建一个物理连接来显著地提高程序的效率,这样能够在很大程度上提升应用性能和伸缩性XADataSource * 该实例返回的 Connection 对象能够支持分布式事务;如 Druid 中会提供DruidXADataSource。XAConnection 接口继承了 PooledConnection 接口,因此它具有所有 PooledConnection 的特性三、执行 sql、检索结果3.1 创建Statement
  获取到 JDBC 中的Connection对象之后,我们可以通过Connection对象设置事务属性,并且可以通过Connection接口中提供的方法创建Statement、PreparedStatement或者CallableStatement对象。如:java.sql.Connection#createStatement() 复制代码
  PreparedStatement和CallableStatement是Statement的子接口,Statement接口中定义了执行SQL语句的方法,但这些方法不支持参数输入。PreparedStatement接口继承自Statement接口,增加了参数占位符功能,当执行SQL语句时,可使用"?"作为参数占位符,然后使用其提供的其他方法为占位符设置参数值。其实例对象包含已编译的 SQL 语句,由于已预编译过,所以其执行速度要快于 Statement 对象。因此,多次执行的 SQL 语句经常创建为 PreparedStatement 对象,以提高效率。(这里挖个坑,因为其参数设置机制,在实践中也可能会遇到其带来的问题)CallableStatement接口继承自PreparedStatement接口,在PreparedStatement的基础上增加了调用存储过程并检索调用结果的功能。3.2 执行 sql
  Statement接口可以理解为 JDBC API 中提供的 SQL 语句的执行器,我们调用Statement接口中定义的不同方法以实现不同的结果:调用 executeQuery()方法执行查询操作调用 executeUpdate()方法执行更新操作调用 executeBatch()方法执行批量处理3.3 获取结果
  对结果的处理则:通过 getResultSet()方法来获取查询结果集,ResultSet 对象代表查询操作的结果集通过 ResultSet 对象的 getMetaData()方法获取结果集元数据信息,该方法返回一个 ResultSetMetaData 对象,我们可以通过 ResultSetMetaData 对象获取结果集中所有的字段名称、字段数量、字段数据类型等信息通过 getUpdateCount()方法来获取更新操作影响的行数3.4 Connection、Statement、ResultSet 之间的关系
  四 关闭 Connection 对象
  当使用完 Connection 对象后,需要显式地关闭该对象。Connection 中的 close()方法用于关闭 Connection 对象,由该 Connection 对象创建的所有 Statement 对象也都会被关闭。连接池的实现的 close()方法中会把 Connection 回收到连接池中。五、最后说一句
  我是石页兄,如果这篇文章对您有帮助,或者有所启发的话,欢迎关注笔者的微信公众号【 架构染色 】进行交流和学习。您的支持是我坚持写作最大的动力

龙光集团前7月合约销售额约330。7亿元单月销售27。3亿元环球网房产报道8月14日,龙光集团有限公司(03380。HK)发布2022年7月未经审核经营数据。公告显示,今年7月单月,龙光集团实现合约销售额约27。3亿元,合约销售面积约19万迷你世界沙漠版本骆驼怎么驯服沙漠版本骆驼驯服攻略在迷你世界中很多玩家还不清楚沙漠版本骆驼怎么驯服。接下来就让小编给大家带来迷你世界沙漠版本骆驼驯服攻略,感兴趣的小伙伴们一起来看看吧。迷你世界沙漠版本骆驼驯服攻略一驯服方法玩家用仙LOL将推出宠物打野,解决新手难玩问题,多件装备回归英雄联盟官方在最新的一篇博客中,谈到了打野位置的变动,称将为打野推出宠物。宠物重制方向为以下几点点1降低打野门槛,提供宠物辅助,让更多英雄能够打野2按下T键增加了更多的信号标志,让原始传奇2周年,影游联动共创跨界优势生态8月5日晚,贪玩游戏组织了一场观影活动,本次活动选择暑期档首部国产末日科幻机甲大片明日战记,硬核的末日废土风,大手笔的动作场面给这个夏天实实在在的加了一把火,上映当日就收获好评如潮NBA2K21MAC苹果游戏原生版支援10。1410。15111213适用于APPLECPUNBA2K21MAC苹果电脑游戏原生版支援10。1410。15111213适用于APPLECPU游戏编号510游戏类型体育游戏游戏大小6。24Gb支持系统macOS10。14Moj开拓第二增长曲线,海外业务将成三七互娱新突破口据悉,今年4月开始国家游戏版号时隔8个月重新发放,目前,共计241款游戏获得版号。广州日报报道,今年8月获得新游戏版号的以中小型游戏厂商为主,不少是未上市的游戏公司。四轮审批信息中77天赋佳琦天赋教育探索之光谱的红月2022年8月15日。今天是光谱的红月。光谱红月天赋组合的孩子具有什么样的天赋特质呢?我们来解读今天的天赋图腾吧。主图腾与指引位红月红月的天赋的孩子有很强的情绪感知力,喜怒哀乐,自趣谈为什么妖怪都想吃唐僧肉中午,跟一群807060后的妈妈们一起吃午饭,一群妈妈兵团在一起自然三句离不开自己孩子,看得出,尤其是家有儿子的更是宝贝的不行,一提儿子双眼放光,一下子精神了。虽然现在提倡男女平等有巨大婴儿肿块的妈妈生下了苏格兰历史上最重的双胞胎当AlannaMerrie和她的丈夫Paul怀孕时,他们能够猜到一些事情。双胞胎在家庭的两边都有,所以他们总是知道这是一种可能性。我爸爸有双胞胎兄弟,我妈妈身边也有双胞胎,来自爱丁早说,儿童房这样配色,娃一进去就不想走了儿童房大概是整个房子最漂亮的地方来了。即使很多朋友喜欢简约的风格,他们也会想在儿童房里好好打造一番。毕竟高颜值的儿童房不仅看起来顺眼,还能让娃娃们住得更舒服!今天分享四种颜色的高价蓝军有意格拉利什?事实证明俱乐部不需要他维拉队长目前正在随队参加欧洲杯,目前红魔以及蓝月亮同时有意引进这球员,据悉蓝军目前也已经加入到了这笔交易争夺战中来。其实对于格拉利什受到三支豪门俱乐部的同时追逐,对于该球员本人而言
小米铁大横空出世,A股机器人产业链大梳理早在2021年8月,小米就干了件很抓眼球的事,发布会上推出了铁蛋,也就是小米第一代的机器狗昨天,小米又干了件更牛的事,铁蛋的兄弟铁大横空出世了,成为了小米第一代人形机器人。小米的这RedmiK50至尊版对比一加AcePro,价格相近,谁配置更高,一眼看懂RedmiK50至尊版一加AcePro性能骁龙8Gen1LPDDR5UFS3。1骁龙8Gen1LPDDR5UFS3。1屏幕6。67英寸120Hz华星光电天马AMOLED柔性直屏分辨大额居间费再迎利好政策个税核定0。5,增值税全免居间服务在一些特殊项目的达成过程中发挥着重要的作用,无论是房屋的租赁还是一个工程项目的介绍其中都离不开居间人,而往往工程项目会涉及到一个居间费,大多数都是按照工程总包合同的35来给流媒体用户超奈飞迪士尼杀回来了随着观众从传统的电视与荧幕转向在线观看,2017年,迪士尼开始打造流媒体服务,与奈飞正面硬刚。五年后的今天,迪士尼的流媒体用户总数已经略超过了奈飞。不过,和全球大多数长视频平台一样销量13连跌!上汽通用到了最危险的时刻?曾经在中国汽车市场叱咤风云的通用汽车,已经到了最危险的时刻。进入2022年以来,上汽通用的零售销量就没有能够跻身车企零售销量榜的前5名,7月份,上汽通用卖出了9。2万辆车,同比下滑北汽集团公布7月销量同比增长24。6太平洋汽车网行业频道近日,北汽集团公布了旗下品牌的7月销量数据,其中提到,北汽集团7月在京产值达到261。8亿元,同比增长24。6。细分到各个品牌,极狐汽车17月销量同比增长3。3直播电商辛模式,辛巴与辛选集团脚步不停歇数字经济是全球经济发展的必然趋势,而电子商务是数字经济中最活跃的产业与模式,也是数字经济最主要的推动力,在乡村振兴中发挥着重要的促进的作用。2022年,更是乡村振兴全面开展的关键之中企美国集体退市!中石油中石化将从纽交所退市8月12日,中国石油中国石化公告表示,公司将根据美国证券交易法规定,申请自愿将其美国存托股份从纽交所退市。中国石油公告称,公司已通知纽交所,公司将根据一九三四年美国证券交易法等相关河南安徽村镇银行被证实未缴纳存款保险费,那垫付资金来自哪?消息河南安徽村镇银行垫付工作继续进行,已经垫付用户超过43万户,垫付资金超过180亿,但是已经证实这5家村镇银行未缴纳存款保险,不缴纳存款保险肯定无法触发保险赔付环节,那么垫付资金这家私募竟承诺保本收益,还有多项违规!中基协取消会员资格,撤销其管理人登记每经记者姚亚楠每经编辑彭水萍近日,中基协发布了一则纪律处分决定书(以下简称决定书),万鼎国际股权投资基金管理(北京)有限公司(以下简称万鼎国际)因存在未按规定备案私募基金违规承诺保一款叫做铁大的机器人有了北上的加持后,尽管指数依旧不温不火,但个股情绪面确实在好转,不然今天又是妥妥的吃面节奏。在今年公募私募业绩几乎被团灭的情况下,丘栋荣的中庚基金倒是表现的很亮眼,这不上周中庚小盘