Connection 对象与Statement 对象

/**
 * Connection 对象
 * 主要作用: 打开与数据源的连接
 * 用法:使用 connection 对象的 集合, 方法 和 属性可以做以下操作--》

 * ① 通过 connection String, connection Timeout, Mode 对连接属性进行配置
 * ② 设置 CursorLocation 属性——》调用支持批更新的“客户端游标提供者”
 * ③ DefaultDatabase 属性 ——》 设置连接的默认数据库
 * ④ lsolationLevel 属性 ——》 为在连接上打开的事务设置隔离级别
 * ⑤ Provider 属性 ——》 指定 OLE DB 提供者
 * ⑥ Open 方法 ——》 建立到数据源的物理连接
 * ⑦ Close 方法 ——》 断开连接
 * ⑧ Execute 方法 ——》 执行对连接的命令,并使用 CommandTimeout 属性 对执行 进行配置
 * ⑨ BeginTrans, CommitTrans 和 RoolbackTrans方法,Attributes属性 ——》 
 * 管理打开的连接上的事务(如果提供者支持则包括嵌套的事务)
 * ⑩ Errors 集合 ——》 检查数据源 返回的错误
 * ⑩①Version属性 ——》 读取使用中的 ADO 执行版本
 * ⑩②OpenSchema方法 ——》 获取数据库模式信息
 * 注意:如果  不使用 Command 对象进行查询:
 * 需向 Connection 对象的 Execute 方法传送查询字符串,  
 * 但是当需要使  命令文本  具有持久性并重新执行,或使用 查询参数的时候
 * 则必须使用 Command 对象
 * 如果  要执行命令:
 * 可以使用 Command 对象的 Name 属性 给命令  指定一个名称,将 Command
 * 对象的 ActiveConnection 属性  设置为该连接
 * 然后  像发出 Connecton对象的方法一样发出使用命令名称的语句,
 * 后面可带任何参数(如果有返回行则后面带 Recordset 对象),
 * 设置 Recordset 属性,以便自定义所产生的记录集
 * 
 * Statement 对象
 * 作用: 用于将 SQL 语句发送到数据库中
 * Statement 对象有三种:
 * Statement:
 * 作用:用于执行不带参数简单 SQL 语句
 * 特点:每次执行 SQL 语句,数据库都要执行 SQL 语句的编译,最好用于仅执行一次查询并返回结果的情形,
 * 效率高于 PreparedStatement
 * PreparedStatement:
 * 作用:用于执行带 或 不带 IN参数 的预编译 SQL 语句
 * 特点:① 是预编译的, 在执行可变参数的一条 SQL 语句时,比 Statement 的效率高,
 * 因为 DBMS 预编译一条 SQL,当然会比多次编译一条 SQL 的效率要高
 * ② 安全性好,有效防止 SQL 注入等问题
 * ③ 对于多次重复执行的语句,效率会更高一点,并且这种情况下也比较适合使用 batch
 * ④ 代码的可读性和可维护性好
 * CallableStatement:
 * 作用:用于执行对数据库存储过程 的调用
 * 特点:提供了对输出和输入参数的支持
 * 此接口具有对 PreparedStatment 接口提供的输入输出参数的支持
 * 用法:
 * 建立了  到特定数据库的连接 后, 就可用该连接发送 SQL 语句,
 * Statement 对象 用 Conection 的 createStatement 方法创建 ,如下 :
 *
<span style="white-space:pre">	</span>Connection con = DriverManager.getConnection("url", "user", "password");
<span style="white-space:pre">	</span>Statement stmt = con.createStatement();


 *
 * 为了执行 Statement 对象,被发送到数据库的 SQL 语句将被做为参数提供给 Statement 的方法:
 *
<span style="white-space:pre">	</span>ResultSet rs = stmt.executeQuery("SELECT a,b,c FROMTable2");


 * 
 * 使用 Statement 对象执行 SQL 语句
 * Statement 接口提供了三种执行 SQL 语句的方法:executeQuery, executeUpdate, execute
 * 此处使用哪个方法由 SQL 语句所产生的内容决定
 *
 * executeQuery 方法 --》用于产生单个结果集的语句
 * 如: SELECT 语句
 * 
 * executeUpdate 方法 --》 用于执行 INSERT, UPDATE,DELETE, SQLDDL(数据定义语言)语句
 * 如:CREATE TABLE, DROP TABLE
 * install, update,delete 语句 ——》 修改表中0 行或多行中是一列或多列
 * executeUpdate 的返回值 为整数,指示受影响的行数(更新计数)
 * create table 或 drop table 等不操作行的语句, executeUpdate 的返回值总为 0
 * 
 * execute 方法 ——》 用于执行返回多个结果集,多个更新计数或二者组合的语句(不常用)
 * 
 * 执行语句的所有方法都将关闭所调用的   Statement 对象的当前打开结果集(如果存在)
 * 即   在重新执行 Statement 对象前, 需要完成对当前 ResultSet 对象的处理
 * 
 * 继承了 Statement 接口中所有方法的 PreparedStatement 接口都有自己的
 * executeQuery, executeUpdate, execute 方法
 * 
 * Statement 对象 本身不包含 SQL 语句,因此,必须给 Statement.execute 方法提供 SQL 语句作为参数
 * PreparedStatement 对象并不将 SQL 语句作为参数提供给这些方法,因为它们已经包含了预编译 SQL 语句
 * CallableStatement 对象继承这些方法的 PreparedStatement 形式
Connection对象在数据库编程中是一个非常重要的概念,它代表了与数据库的连接。通过这个连接对象,开发者可以执行SQL语句,进而对数据库进行查询、更新、插入和删除等操作。在Java中,最常用的数据库连接库是JDBC(Java Database Connectivity)。 一个典型的Connection对象提供了以下几个功能: 1. 创建Statement对象:通过Connection对象,我们可以创建Statement或PreparedStatement对象,它们用于执行SQL语句。 2. 执行SQL语句:使用创建的Statement或PreparedStatement对象执行SQL查询或更新。 3. 管理事务:Connection对象允许开发者控制事务的开始、提交和回滚。 4. 关闭连接:完成数据库操作后,应当关闭Connection对象释放资源。 一个简单的使用Connection对象的代码示例如下: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java.sql.ResultSet; public class DatabaseExample { public static void main(String[] args) { Connection conn = null; Statement stmt = null; try { // 加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); // 创建数据库连接 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/databaseName", "username", "password"); // 创建Statement对象 stmt = conn.createStatement(); // 执行SQL查询 ResultSet rs = stmt.executeQuery("SELECT * FROM tableName"); // 处理查询结果 while (rs.next()) { // 处理每一行数据... } } catch (Exception e) { // 异常处理 e.printStackTrace(); } finally { // 关闭资源 try { if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (Exception e) { e.printStackTrace(); } } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值