Java连载131-Connection接口和Statement接口

一、Connection接口

  • 该接口代表Java程序和数据的连接,只有获取该连接对象,才能访问数据库来操作数据表
  • 常用方法:
方法说明
creatStatement()创建并返回一个Statement实例,通常在执行无参数SQL语句时创建该实例
prepareStatement()创建并返回一个PreparesStatement实例,通常在执行包含参数的SQL语句中执行,并对SQL语句进行预编译处理
prepareCall()创建并返回一个CallStatement实例,通常在调用数据库存储过程中创建该实例
setAutoCommit()设置当前Connecion实例的自动提交模式。默认是true,也就是说会自动提交更改到数据库;如果设置为false,需要调用commit()或者rollback()将更改提交到数据库
getAutoCommit()查看当前Connection实例是否处于自动提交状态,是返回true,否返回false
setSavePoint()在当前事务中创建并返回一个SavePoint实例,前提是Connection实例不能处于自动提交状态,否则就会抛出异常
releaseSavePoint()从当前事务中移除SavePoint实例
setReadOnly()设置当前事务的读取状态,默认是非只读状态。不能在事务中执行该操作,否则将会抛出异常,他有一个boolean类型的参数入口,默认是false,非只读,可以设置为true为只读
isReadOnly判读是否为只读状态
isClosed()查看当前Connection实例是否已经关闭
commit()从上一次或者回滚开始以来所有的变更都提交到数据库,并释放Connection实例当前拥有的所有数据库锁
rollback()取消当前事务中的所欲更改,并释放当前Connection实例拥有的所有数据库锁。该方法只能在非自动提交模式下使用,否则抛出异常,该方法有一个参数为SavePoint实例的重载方法,用来取消SavePoint实例之后的所有更改,并释放对应的数据库锁
close()立即释放Connection实例所占用数据库和JDBC资源,即关闭数据库连接

二、Statement接口

  • java.sql.Statement接口用于执行静态的SQL语句并返回执行结果
  • 常用方法:
方法说明
executeQuery(String sql)执行指定的静态SELECT语句,并返回一个永远不为null的ResultSet实例。
executeUpdate(String sql)执行静态的INSERT\UPDATE\DELETE语句,并返回一个int型同步更新记录的条数
clearBatch()清除位于Batch中的所有SQL语句,如果驱动程序不支持批处理,将会抛出异常
addBatch(String sql)将指定的SQL命令添加到Batch中,String型入口参数通常为INSERT或者UPDATE语句,如果驱动程序不支持批处理,将会抛出异常
executeBatch()执行Batch中的所有所有SQL语句,如果全部执行成功,则返回由更新计数组成的数组,数组元素的顺序与SQL语句的顺序相对应,数组元素有以下几种情况:(1)大于等于0,说明SQL语句执行成功,此数为影响数据库中行数的更新计数;(2)SUCCESS_NO_INFO的值,说明SQL语句执行,但未得到受影响行数;(3)EXECUTE_FAILED:说明SQL语句执行失败,仅当执行失败后继续执行后面的SQL语句时出现。
close()释放Statement占用的数据库和JDBC资源

三、源码:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]、\[2\]和\[3\]中提到了一个共同的错误,即"connection closed",这是由于获取到的数据库连接已经失效导致的异常。这个错误通常发生在数据库连接被意外关闭或超时的情况下。当连接关闭后,尝试使用该连接执行数据库操作就会抛出"connection closed"异常。要解决这个问题,可以采取以下几个步骤: 1. 检查数据库连接是否正确关闭:确保在使用完数据库连接后,及时关闭连接,释放资源。可以使用try-with-resources语句块或手动调用连接的close()方法来关闭连接。 2. 检查数据库连接池配置:如果使用连接池管理数据库连接,确保连接池的配置正确,并且连接池的最大连接数和最大空闲时间等参数设置合理。如果连接池中的连接长时间没有使用,可能会被数据库服务器主动关闭,导致连接失效。 3. 检查数据库服务器配置:如果连接池配置正确,但仍然出现连接关闭的问题,可能是数据库服务器的配置问题。可以检查数据库服务器的连接超时时间设置,以及数据库服务器的日志查看是否有相关错误信息。 总结起来,"connection closed"异常通常是由于数据库连接失效导致的。要解决这个问题,需要检查数据库连接是否正确关闭,连接池配置是否正确,以及数据库服务器的配置情况。通过排查和修复这些问题,可以解决接口java.sql.SQLException - Connection is closed的错误。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [Cause: java.sql.SQLException: connection closed问题排查、解决](https://blog.csdn.net/FLGBgo/article/details/120748099)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值