一.執行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(); } }