JDBC中執行SQL語句的方式


一.執行DDL、DML語句

DDL、DML分別表示數據庫定義語言、數據庫操縱語言,操控這兩種語言應該使用Statement對象的executeUpdate方法。

代碼如下:

public static void main(String[] args) throws Exception {
    Class.forName("com.mysql.jdbc.Driver");//加載驅動
        //獲得一個物理會話
    Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false","root","4399");
        //得到一個Statement對象
    Statement stat=conn.createStatement();
    String DDL_sql="create table if not exists tab(tab_id varchar(10) primary key,tab_name varchar(20))";
    String DML_sql="insert into tab values('T0002','狗王')";
    System.out.println(stat.executeUpdate(DDL_sql));//輸出執行DDL語句的返回值
    System.out.println(stat.executeUpdate(DML_sql));//輸出執行DML語句的返回值
    }

結果如下:對於DDL語句返回的是0,對於DML語句返回的是受影響的行數。

二.執行DQL語句

 對於查詢語句應該使用Statement對象的executeQuery方法代碼如下:

     Class.forName("com.mysql.jdbc.Driver");
        Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false","root","4399");
        Statement stat =conn.createStatement();
        String DQL_sql="select * from tab";
        ResultSet rs=stat.executeQuery(DQL_sql);

 

 得到的是一個ResultSet的結果集。

三.使用PreparedStatement執行SQL語句

一個預處理的Statement對象。代碼如下:

package StudyJDBC;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;


/**
 * @ClassName PreparedStatementText
 * @Author 真正的小明被占用了
 * @Date 2018/10/21/021 11:15
 * @Version 1.0
 */
public class PreparedStatementText {

    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn =DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false","root","4399");
        //創建一個PreparedStatement對象
        PreparedStatement perpare=conn.prepareStatement("insert into tab values (?,?)");//對象在創建之初就有了預編譯
        perpare.setString(1,"T00003");//設置第一個占位符的類型和值
        perpare.setString(2,"李武");//設置第二個
        perpare.executeUpdate();//執行的還是DML語句所以使用executeUpdate方法
    }
}

 

四.查詢結果管理集

package StudyJDBC;

import java.sql.*;
import java.util.ArrayList;

/**
 * @ClassName ReasultSetText
 * @Author 真正的小明被占用了
 * @Date 2018/10/21/021 13:48
 * @Version 1.0
 */
public class ReasultSetText {

    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false","root","4399");
        Statement stat=conn.createStatement();
        //創建一個結果集接受查詢結果
        ResultSet rs=stat.executeQuery("select * from tab");
        //現在rs結果集有三行三列,
        rs.next();//第一行
        System.out.println(rs.getString("tab_id"));
        rs.absolute(2);//跳轉到第二行
        System.out.println(rs.getString("tab_id"));
        rs.first();//直接回到第一行
        System.out.println(rs.getString("tab_id"));
        rs.close();
    }
}

 


免責聲明!

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



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