JDBC——Statement執行SQL語句的對象


Statement該對象用於執行靜態SQL語句並返回它產生的結果。
表示所有的參數在生成SQL的時候都是拼接好的,容易產生SQL注入的問題

PreparedStatement對象是一個預編譯的SQL語句。動態SQL

功能
1.執行SQL

3個方法

①方法:execute() 可以執行任意的SQL,用的不多了解
修飾/返回值類型:boolean

 

2.executeUpdate() 執行DML語句

方法:executeUpdate() 執行DML語句(insert、delete、update)增刪改數據。不常使用:DDL語句(create、drop、alter)增刪改表和庫
修飾/返回值類型:int


返回值:執行DML語句受影響的行數。可以通過這個值來判斷SQL語句是否執行成功>0執行成功,反之失敗。
    執行DDL語句沒有返回結果

插入一條數據

package cn.itcast.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * insert插入
 * */
//        第一步不是導入驅動架包了,因為已經導入過了
public class JdbcDemo2 {
    public static void main(String[] args) {
        Statement stmt = null;
        Connection conn = null;
        try {
//        1.注冊驅動,會拋出ClassNotFoundException異常(MySQL5.0后可省略)
            Class.forName("com.mysql.jdbc.Driver");
//        2.獲取Connection對象,會拋出SQLException異常(因為連接的是本機的數據庫所以ip地址和端口號可以省略不寫)
            conn= DriverManager.getConnection("jdbc:mysql:///myemployees","root","ROOT");
//        3.定義SQL
            String sql="insert into job_grades values('ma','16789','16789');";
//        4.獲取執行SQL的對象Staement
            stmt = conn.createStatement();
//        5.執行SQL(返回一個結果)
            int count = stmt.executeUpdate(sql);//影響的行數
//        6.處理結果
            System.out.println(count);
            if (count>0){
                System.out.println("添加成功");
            }else {
                System.out.println("添加失敗");
            }
//        7.釋放資源(如果第5步執行報錯就不會執行下面的語句,下面的代碼就不會正常執行)
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
//        8.所以應該在finally里釋放資源
//            stmt.close();因為stmt不是全局變量,所以出了try的作用域就找不到了
//            先復制Statement stmt =,在等號后賦值為null
//            刪除這句話中的“Statement” stmt = conn.createStatement();
//          stmt.close();
//            如果只這樣寫程序在執行第3步的時候報錯,例如密碼寫錯了之類的就會報空指針異常
//          所以先要判斷
//            釋放執行SQL的對象
            if (stmt != null){
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
//            還要釋放數據庫連接對象,再次執行上面的操作
            if (conn != null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

 

 

 

 

修改插入的數據

package cn.itcast.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * update修改
 * */
public class JdbcDemo3 {
    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        try {
            //1.注冊驅動
            Class.forName("com.mysql.jdbc.Driver");
            //2.獲取數據庫連接對象
            conn = DriverManager.getConnection("jdbc:mysql:///myemployees", "root", "ROOT");
            //3.定義SQL
            String sql ="update job_grades set highest_sal = '999999' where grade_level = 'ma';";
            //4.獲取執行SQL的對象
            stmt = conn.createStatement();
            //5.執行SQL
            int count = stmt.executeUpdate(sql);
            //6.處理返回結果
            System.out.println(count);
            if (count>0){
                System.out.println("修改成功");
            }else{
                System.out.println("修改失敗");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            //7.釋放資源
            if (stmt != null){
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (conn != null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

 

 

 

刪除插入的數據

package cn.itcast.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/**
* delete刪除
* */
public class JdbcDemo4 {
    public static void main(String[] args) {
        //聲明數據庫連接對象
        Connection conn = null;
        //聲明數據庫執行對象
        Statement stmt = null;
        try {
            //1.注冊驅動
            Class.forName("com.mysql.jdbc.Driver");
            //2.獲取數據庫連接對象
            conn = DriverManager.getConnection("jdbc:mysql:///myemployees", "root", "ROOT");
            //3.定義SQL
            String sql ="delete from job_grades where grade_level = 'ma';";
            //4.獲取執行SQL的對象
            stmt = conn.createStatement();
            //5.執行SQL
            int count = stmt.executeUpdate(sql);
            //6.處理返回結果
            System.out.println(count);
            if (count>0){
                System.out.println("刪除成功");
            }else{
                System.out.println("刪除失敗");
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            //7.釋放資源
            if (stmt != null){
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (conn != null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

 

 1.executeUpdate() 執行DDL語句

package cn.itcast.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/*
* DDL語句
* */
public class JdbcDemo5 {
    public static void main(String[] args) {
        //聲明數據庫連接對象
        Connection conn = null;
        //聲明數據庫執行對象
        Statement stmt = null;
        try {
            //1.注冊驅動
            Class.forName("com.mysql.jdbc.Driver");
            //2.獲取數據庫連接對象
            conn = DriverManager.getConnection("jdbc:mysql:///myemployees", "root", "ROOT");
            //3.定義SQL
            String sql ="create table stu (id int,name varchar(20));";
            //4.獲取執行SQL的對象
            stmt = conn.createStatement();
            //5.執行SQL
            int count = stmt.executeUpdate(sql);
            //6.處理返回結果
            System.out.println(count);

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            //7.釋放資源
            if (stmt != null){
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (conn != null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

 

 

 

 3.executeQuery()執行DDL語句

方法:executeQuery(String sql) 執行DQL語句(select)查詢語句
修飾/返回值類型:ResultSet (結果集)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM