JDBC--Statement使用

1、通过Statement实现类执行更新操作(INSERT、UPDATE 、DELETE):

--1)获取数据库连接Connection的对象;

--2)通过Connection类的createStatement()方法获取Statement对象;;

--3)调用Satement类的executeUpdate(sql) 方法执行更新操作;

--4)释放数据库资源(关闭Statement对象和Connection对象);

public static int update(String sql){
    Connection conn = null;
    Statement statement = null;
    int influencedRows = 0;
    try{
        //获取数据连接
        conn = JDBCUtils.getConnection();
        //获取Statement对象
        statement = conn.createStatement();
        //执行更新操作
        influencedRows =  statement.executeUpdate(sql);
    }catch(Exception e){
        e.printStackTrace();
    }finally{
        //释放资源
        release(conn, statement);
    }   //返回受影响行数
    return influencedRows;
}

2、通过Statement实现类执行查询并获取查询数据:

--步骤与更新大致相同,但是这里使用Statement的executeQuery(sql)方法来执行查询操作,该操作将返回一个ResultSet结果集;

--ResultSet以逻辑表格的形式封装了数据库操作的结果集,ResultSet类维护了一个游标,该游标一开始指向数据表第一行的前面,可通过其next()方法进行下移,若检测到下一行有数据,则游标下移,并返回true,此时可通过getXxx(columnIndex | columnName)等方法获取具体列的值。

public static void query(){
    Connection conn = null;
    Statement statement = null;
    ResultSet rs = null;
    String sql = "select * from employees";
    try{
        //1、获取数据库连接
        conn = JDBCUtils.getConnection();

        //2、获取Satement对象
        statement = conn.createStatement();

        //3、调用Statement类的executeQuery(sql)方法获取结果集ResultSet
        rs = statement.executeQuery(sql);

        //4、获取ResultSet中的数据
        while(rs.next()){
            int id = rs.getInt("employee_id");
            String name = rs.getString("last_name");
            double salary = rs.getDouble("salary");
            System.out.println("ID: " + id);
            System.out.println("Last Name: " + name);
            System.out.println("Salary: " + salary);
        }
    }catch(Exception e){
        e.printStackTrace();
    }finally{
        //5、关闭数据库资源
        if(rs != null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        release(conn, statement);
    }}
时间: 2024-10-07 16:11:42

JDBC--Statement使用的相关文章

Error executing DDL via JDBC Statement

? 版权声明:本文为博主原创文章,转载请注明出处 1.问题描述: 启动hibernate测试案例时报错如下: org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDat

Error executing DDL "drop sequence if exists hibernate_sequence" via JDBC Statement

Error executing DDL "drop sequence if exists hibernate_sequence" via JDBC Statement 在使用springboot+jpa进行部署项目时候, 因为application.yml文件配置错误,所以出现上面的异常情况.然后修改.yml配置文件为: spring: jpa: show-sql: true hibernate: ddl-auto: update database-platform: org.hibe

JDBC Statement PreparedStatement CallableStatement

在 JDBC 应用程序中,JDBC 语句对象用于将 SQL 语句发送到数据库服务器.一个语句对象与一个连接相关联,应用程序与数据库服务器之间的通信由语句对象来处理. JDBC 中有三种类型的语句对象: 1. 常规语句(General statement) 2. 预置语句(Prepared statement) 3. 可调用语句(Callable statement) 语句对象与一个连接相关联,所以要创建一个语句对象,首先应该建立一个数据库连接.连接的获取见上一篇博客. 关于这三种语句,个人觉得最

JDBC Statement对象执行批量处理实例

以下是使用Statement对象的批处理的典型步骤序列 - 使用createStatement()方法创建Statement对象. 使用setAutoCommit()将自动提交设置为false. 使用addBatch()方法在创建的Statement对象上添加SQL语句到批处理中. 在创建的Statement对象上使用executeBatch()方法执行所有SQL语句. 最后,使用commit()方法提交所有更改. 此示例代码是基于前面章节中完成的环境和数据库设置编写的. 以下代码片段提供了使用

JDBC statement的常用方法

Statement接口: 用于执行静态SQL语句并返回它所生成结果的对象. 三种Statement类: Statement: 由createStatement创建,用于发送简单的SQL语句(最好是不带参数的) PreparedStatement: 继承Statement接口,由preparedStatement创建,用于发送含有一个或多个输入参数的sql语句.PreparedStatement对象比Statement对象的效率更高,并且可以防止SQL注入. CallableStatement:

【Java编程】JDBC注入攻击-Statement 与 PreparedStatement

在上一篇[Java编程]建立一个简单的JDBC连接-Drivers, Connection, Statement and PreparedStatement我们介绍了如何使用JDBC驱动建立一个简单的连接,并实现使用Statement和PreparedStatement进行数据库查询,本篇blog将接着上篇blog通过SQL注入攻击比较Statement和PreparedStatement.当然这两者还有很多其他方面的不同,在之后的blog中会继续更新. [Statement查询] 1.在DBH

Java JDBC连接MySQL

简单地JDBC小实例 package com.javaJDBCTest; import java.sql.DriverManager; import java.sql.ResultSet; import com.mysql.jdbc.Connection; import com.mysql.jdbc.Statement; public class JDBCTestDemo1 { public static void main(String args[]) throws Exception { /

Java JDBC高级特性

1.JDBC批处理 实际开发中需要向数据库发送多条SQL语句,这时,如果逐条执行SQL语句,效率会很低,因此可以使用JDBC提供的批处理机制.Statement和PreparedStatemen都实现了批处理.测试表结构如下: Statement批处理程序示例 1 package server; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.ResultSet; 6 impor

JDBC批处理Select语句

注:为了更好理解本文,请结合原文阅读 在上一篇文章中提到了PreparedStatement的局限性:PreparedStatement不允许一个占位符(?)设置多个值,本文试图从其它角度来解决该问题. 在网络上开销最昂贵的资源就是客户端与服务器往返的请求与响应,JDBC中类似的一种情况就是对数据库的调用,如果你在做数据插入.更新.删除操作,可以使用executeBatch()方法减少数据库调用次数,如: 1 2 3 4 5 Statement pstmt = conn.createStatem

简单封装JDBC

package com.sunshine.frimework.tool; import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.ut