JDBC基礎:statement詳解( Statement執行sql的對象


概述:

  jdbc中的statement對象用於向數據發送sql語句,想完成對數據庫的增刪改查,只需要通過這個對象向數據庫發送增刪改查語句即可。

  statement.executeUpdate()方法,用於向數據庫發送增,刪,改的sql語句,executeUpdate()執行完后,將返回一個整數(就是增刪改語句導致了數據庫幾行數據發生了改變)

  statement.executeQuery()方法用於向數據庫發送查詢語句executeQuery()方法返回代表查詢結果的ResultSet對象

CURD操作--Create(插入操作)

科普:

  增刪查改(英語:CRUD[注 1]),全稱增加(Create,意為“創建”)、刪除(Delete)、查詢(Read,意為“讀取”)、改正(Update,意為“更新”)

        //4.執行SQL的對象    Statement執行sql的對象
        Statement statement = connection.createStatement();

        //5.用執行SQL的對象 去執行SQL,可能存在結果,返回結果
        String sql="insert into user(....)values(....)";

        ResultSet resultSet = statement.executeUpdate(sql)
·        if(num>0){
                 System.out.println("插入成功!!!")

        }    

//delete和update操作跟上面的相似,只是執行sql語句不同

 

 

CURD操作--read(查詢操作)

       Statement statement = connection.createStatement();

        //5.用執行SQL的對象 去執行SQL,可能存在結果,返回結果
        String sql="SELECT * from users";

        ResultSet resultSet = statement.executeQuery(sql);//返回結果集,結果集中封裝了全部的數據庫查詢出來的結果

        //返回的結果集本質:是一個鏈表的形式存儲
        while(resultSet.next()){
           //根據獲取列的數據類型,分別調用ResultSet對象的相應方法映射的Java的對象中,(getObject可得到所有數據類型)
        }            

 

代碼實現

1.提取工具類

public class JdbcUtils {

    private  static String driver=null;
    private  static String url=null;
    private  static String username=null;
    private  static String password=null;

    static {

        try{
            //獲得類加載器.獲得它的資源(返回了一個輸入流)
            InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("db.properties");
            Properties properties = new Properties();
            properties.load(in);

            driver=properties.getProperty("driver");
            url=properties.getProperty("url");
            username=properties.getProperty("username");
            password=properties.getProperty("password");

            //1.驅動只用加載一次
            Class.forName(driver);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    //獲取連接
    public static Connection getConnection() throws SQLException {
            return DriverManager.getConnection(url, username, password);
    }

    //釋放連接資源
    public static void release(Connection conn, Statement st, ResultSet rs) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (st!=null){
            try {
                st.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

 

2.編寫增刪改方法(executeUpdate(SQL))

ublic class TestInsert {
    public static void main(String[] args) {

        Connection conn=null;
        Statement st=null;
        ResultSet rs=null;

        try {
             conn = JdbcUtils.getConnection();//獲取數據庫連接
             st=conn.createStatement();//獲得SQL的執行對象

            String sql="INSERT INTO users(id,`NAME`,`PASSWORD`,email,birthday)" +
                     "VALUES(4,'king','123456','1111@qq.com','2020-9-27')";

            int i = st.executeUpdate(sql);
            if (i>0){
                System.out.println("插入成功!");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JdbcUtils.release(conn,st,null);
        }

    }
}
//注意:刪除和修改跟create相似,僅需要把sql語句改成相應功能就可實現

 

3.編寫搜索方法(executeQuery(SQL))

public class TestSelect {


    public static void main(String[] args) {
        Connection conn=null;
        Statement st=null;
        ResultSet rs=null;

        try {
            conn = JdbcUtils.getConnection();//獲取數據庫

            st=conn.createStatement();//獲得SQL執行對象

            String sql="SELECT * from users";//SQL語句

            rs=st.executeQuery(sql);//獲得返回的所有數據

            while(rs.next()){
                System.out.println("id="+rs.getObject("id"));
                System.out.println("NAME="+rs.getObject("NAME"));
                System.out.println("PASSWORD="+rs.getObject("PASSWORD"));
                System.out.println("email="+rs.getObject("email"));
                System.out.println("birthday="+rs.getObject("birthday"));
                System.out.println("===========================");

            }

        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JdbcUtils.release(conn,st,rs);//釋放資源,本質xxx.close()
        }
    }
}

 

 


免責聲明!

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



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