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

java ee jdbc_JavaEE JDBC 补充注意点

JDBC补充注意点

@author ixenos

1.一个Statement对象可以用于多个不相关的命令和查询,但是一个Statement对象最多只能有一个打开的结果集,如果需要同时执行多个查询同时分析查询结果,那么必须创建多个Statement对象

a)     然而!如果真的需要并发查询分析结果,我们更应该从数据库层面的组合查询去解决,而不是java层面的算法,因为前者只需要分析一个结果

2.使用完ResultSet、Statement、Connection对象后,应立即调用close方法,因为这些对象都使用了规模较大的数据结构和数据库服务器上的有限资源(socket、io等)

3.如果Statement对象上有一个打开的结果集,那么调用close方法将自动关闭该结果,而调用Connection对象的close方法将关闭该连接上的所有语句

4.在JavaSE7以上,在Statement上调用closeOnCompletion方法,在其所有结果集都被关闭后,该Statement语句会自动关闭!也就是在finally中只需关闭ResultSet和Connection,这种情况下Statement在ResultSet关闭后可以自动关闭

5.预编译语句 参数的set填入和 结果集 结果的get选择类似,前一个参数为宿主变量的位置:prestmt.setString(1, publisher);

6.获取自动生成键(行自动计数)

1)大多数数据库支持行自动计数的机制(实现上有差异性),这些自动计数的值常被用作主键;

2)JDBC没有提供自动生成键的接口,但提供了获取自动生成键的有效途径:

当我们插入一个新行,且其键已经自动生成时,可用下面的代码来获取这个键:

stmt.executeUpdate(insertStatement, Statement.RETURN_GENERATED_KEYS);

ResultSet rs = stmt.getGeneratedKeys();

if(rs.next()){

int key = rs.getInt(1);

...

}

相关文章:

  • java 返回前台excel_Java后台读取excel表格返回至Web前端
  • eclipse for java web_【Javaweb】Eclipse for JavaEE新建的Web工程自动生成web.xml
  • gopython 获取python 全局线程锁失败_python线程互斥锁递归锁死锁
  • java collections 复制_Java公开课|Java Collections类查复制操作是你学习Java的超车途径,还不来看看就晚了...
  • java 线程的移动问题_Spring Boot中的多线程问题和ThreadLocal
  • Java 经常用到access_用Java连接到Microsoft Access 2007数据库的正确方法是什么?
  • java1.8 interface_JDK1.8新特性——FunctionInterface
  • php file_get_contents 中文,php file_get_contents函数怎么用
  • php 平均下载速度,php限制下载速度的实现方法
  • docker lamp php7,环境准备:docker-compose安装 LAMP、LNMP、php扩展
  • java system.in 怎么写,java 里System.in 输入流如何使用
  • php 两数最大相同子串,用javascript求两个字符串最大的相同的子串(代码实例)...
  • JAVA ulimit,Linux:使用ulimit设置文件最大打开数
  • matlab表示数据散度的统计量,matlab kl-divergence(KL散度)实现代码 | 学步园
  • mysql anzhaung xiangjie,GitHub - dizhaung/spring-boot-student: spring-boot-student
  • [译] React v16.8: 含有Hooks的版本
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • input的行数自动增减
  • iOS 系统授权开发
  • IP路由与转发
  • Java精华积累:初学者都应该搞懂的问题
  • MySQL QA
  • python 装饰器(一)
  • Unix命令
  • web标准化(下)
  • 代理模式
  • 分享几个不错的工具
  • 简单实现一个textarea自适应高度
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 前端性能优化--懒加载和预加载
  • 巧用 TypeScript (一)
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 再次简单明了总结flex布局,一看就懂...
  • 自制字幕遮挡器
  • 2017年360最后一道编程题
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • #控制台大学课堂点名问题_课堂随机点名
  • (1)Android开发优化---------UI优化
  • (四)Controller接口控制器详解(三)
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET delegate 委托 、 Event 事件
  • .net项目IIS、VS 附加进程调试
  • @Autowired自动装配
  • @JsonFormat与@DateTimeFormat注解的使用
  • @Transactional 详解
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [1] 平面(Plane)图形的生成算法
  • [c]统计数字
  • [Django 0-1] Core.Checks 模块
  • [EFI]ASUS EX-B365M-V5 Gold G5400 CPU电脑 Hackintosh 黑苹果引导文件