JDBC中執行SQL語句的方式

一.執行DDL、DML語句java

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

代碼以下:sql

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語句spa

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

     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語句blog

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

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方法
    }
}

 

四.查詢結果管理集io

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();
    }
}
相關文章
相關標籤/搜索