可滚动和可更新的结果集ResultSet @author ixenos 需求背景 1.对于一个只需要分析数据的程序来说,普通的ResultSet已够用 2.但如果ResultSet用于显示一张表或查询结果的可视化数据显示, 1)会希望用户在结果集上前后移动的需求, 2)而且一旦展示了结果集的内容,用户会希望修改这些内容,这有两种方式: (1)一般通过UPDATE语句修改(更高效) (2)通过SELECT得到ResultSet,再遍历修改(意味着可以细化修改操作!) 3.需求总结:细化修改操作,且…
java 数据库编程 1. 读写LOB 除了数字.字符串和日期之外,许多数据库还可以存储大对象,例如图片或其它数据.在SQL中,二进制大对象称为BLOB,字符型大对象称为CLOB. 要读取LOB,需要执行SELECT语句,然后在ResultSet上调用getBlob或getClob方法,这样就可以获得Blob或Clob类型的对象.要从Blob中获取二进制数据,可以调用getBytes或getInputStream.例如,如果你有一张保存图书封面图形的表,那么就可以像下面这样获取一张图像: Pre…
ResultSet内外移动 @author ixenos 内外移动指位置光标的移动 内移动就是一个ResultSet得到后的那个光标! 外移动就是多个ResultSet的迭代 内移动 一般的数据库都不允许单个查询提交多个SELECT语句, 1.execute执行SQL语句后,返回一个结果集ResultSet, 2.其中有个光标next在第一个元组之前(想象一下),调用hasNext就会判断光标下一个元组存不存在 3.rs.next定位行(元组triple),rs.getXXX定位列(字段fiel…
对于一些较为复杂的统计条件查询,可以通过存储过程来实现,既可以提高效率,减少网络流量,也可以避免sql语句耦合在代码中.但是存储过程返回的结果集如何获取(类似表数据),却着实让我费劲心力. 如下: CREATE PROC pro_student AS BEGIN SELECT * FROM sutdent END 在这种情况下,直接在客户端执行,很顺利的可以得到结果 但是当我在Java代码中执行时 CallableStatement cs=conn.prepareCall(" EXEC pro_…
​Power BI 3-4月功能更新培训合集 Power BI每月功能的更新,都有很多大咖精辟解读,我们一直也都是积极中期待,相信所有P友如是或更甚. 视频学习可以结合微软Power BI 3-4月文章一起温习,下面就是3-4月的视频讲解. 点击:Power BI 3月功能更新 点击:Power BI4月功能更新 技术交流 1.Power BI免费下载:http://www.yeacer.com/ Microsoft Power BI Desktop中文最新版:下载地址 2.欢迎加入的Power…
jdbc调用存储过程获取多个结果集 2017年07月26日 21:20:22 Kenny-Liu 阅读数:1486 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/L2388399752/article/details/76165734 这几天,公司重构一套erp,用到很多存储过程,但我在用jdbc调用存储过程的时候发现无法接收多个结果集(存储过程select返回的Result),而且国内很难找到解决方案,今天下午花了一下午,最后终于实现了. C…
JDBC事务 JDBC的事务由Connection提供,默认是打开的. 要开启事务,则要关闭自动提交, conn.setAutoCommit(false); 提交事务使用 conn.commit(); 回滚事务使用 conn.rollback(); 可以在某个位置设置一个保存点,回滚时只回滚到这个点, try { Savepoint sp = conn.setSavepoint(); ... } catch (SQLException e) { conn.rollback(sp); } 当Con…
了解JNDI @author ixenos Web与企业应用中的连接管理 1. 数据库连接方式: (1)使用配置文件 (2)使用JNDI 2. 在Web或企业环境中部署 JDBC应用时,数据库连接管理与JNDI(Java Name Directory Interface)是集成在一起的 (1)遍布企业的数据源的属性可以存储在一个目录中,这样我们可以集中管理用户名.密码.数据库名 和 JDBC URL (2)使用JNDI创建数据库连接: Context jndiContext = new Init…
JDBC 事务 @author ixenos 事务 1.概念:我们将一组语句构建成一个事务(trans action),当所有语句顺利执行之后,事务可以被提交(commit):否则,如果其中某个语句遇到错误,那么事务将被回滚,就好像没有任何语句被执行一样 2.需求背景:将多个语句组合成事务的主要原因是为了确保数据库完整性(database integrity) 3.默认情况下,数据库连接处于自动提交模式(autocommit mode),每个SQL语句一旦被执行便被提交给数据库,一旦命令被提交就…
RowSet行集 @author ixenos 应用背景 1.基于结果集的缺点:在与用户的整个交互过程中,必须始终与数据库保持连接 后果:当用户长时间离开时,数据库连接长时间被占用,而这属于稀缺资源: 解决:使用行集RowSet,RowSet继承了ResultSet接口,却无需始终保持与数据库的连接~ 2.结果集不便于移动,因为数据结构复杂,且依赖于连接 解决:使用行集RowSet,RowSet适用于将查询结果移动到复杂应用的其他层,或者其他设备当中 3.因为RowSet继承了ResultSet…