Java連載135-JDBC執行SQL操做

1、數據庫的基本操做

1.SQL語句四大類:

  • (1)數據查詢/操縱/定義/控制語言(DQL/DML/DDL/DCL)
  • (2)增刪改查CRUD

2.查詢數據

  • 利用Statement實例經過執行靜態SELECT語句完成,也能夠利用PreparedStatement實例經過執行SELECT語句進行完成,還能夠利用CallableStatement實例經過執行存儲過程來完成。
  • (1)利用Statement實例經過執行靜態SELECT語句查詢的代碼示例:
String sql = "select * from tb_record where sec=?";
Statement stmt = con.createStatement();
PreparedStatement pstmt = con.preparedStatement(sql);
CallableStatement cstmt = con.prepareCall("(CALL demoSp(?,?))");
  • (2)利用PreaparedStatement實例經過執行動態SELECT語句查詢數據的代碼以下:
String sql = "select * from tb_record where sec=?";
PreparedStatement prpdStmt = connection.prepareStatement(sql);
prpdStmt.setString(1,"男");
ResultSet rs = prpdStmt.executeQuery();
  • (3) 利用CallableStatement實例經過執行存儲過程查詢數據的代碼示例以下:
String call = "(call pro_record_select_by_sex(?))";
CallableStatement cablStmt = connection.prepareCall(call);
calStmt.setString(1,"男");
ResultSet rs = cablStmt.executeQuery();
  • 不管使用哪一種方式,都須要執行executeQuery()方法,這時纔是真正開始執行Select語句。
package com.bjpowernode.java_learning;

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

public class D135_1_SelectExercise {
	private static final String URL = "jdbc:Access:///e:/xsgl.mdb";
	
	static {
		try {
			Class.forName("com.hxtt.sql.access.AccessDriver");
			
		}catch(ClassNotFoundException e) {
			e.printStackTrace();//捕獲未找到該類的異常信息
		}
	}
	
	public static void main(String[] args) {
		try {
			Connection conn = DriverManager.getConnection(URL);
			Statement stmt = conn.createStatement();
			String sql = "select * from studentInfo";                //定義靜態的SELECT語句
			ResultSet rs = stmt.executeQuery(sql);                   //執行靜態的SELECT語句
			while(rs.next()) {
				//遍歷結果集,經過next()方法能夠判斷是否還存在符合條件的記錄
				int id = rs.getInt(1);                               //經過列索引得到指定列的值
				String name = re.getString(2);                      
				String sec = rs.getString(3);
				System.out.println(id + " " + name + " " + sex);
			}
			stmt.close();
			conn.close();
		}catch(SQLException e) {
			e.printStackTrace();
		}
	}

}
  • 上面使用了Statement實例執行了靜態SELECT語句,下面咱們使用PreparedStatment實例執行動態SELECT語句查詢記錄
package com.bjpowernode.java_learning;

import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;

public class D135_2_PreparedStatementSQL {
	private static final String URL = "jdbc:Access:///e:/xsgl.mdb";
	static {
		try {
			Class.forName("com.hxtt.sql.access.AccessDriver");
			
		}catch(ClassNotFoundException e) {
			e.printStackTrace(); //輸出捕獲到異常信息
		}
	}
	
	public static void main(String[] args) {
		try {
			Connection conn = DriverManager.getConnection(URL);          
			Statement stmt = conn.createStatement(sql);
			String sql = "select * from studentInfo";                  //定義靜態Select語句
			PreparedStatement prpdStmt = conn.preparedStatement(sql);  //預處理動態INSERT語句
			ResultSet rs = prpdStmt.executeQuery();                    //執行動態INSERT語句
			ResultSetMetaData metaData  = rs.getMetaData();            //得到ResultSetMetaData類的實例
			System.out.println(metaData.getColumnName(1) + "         ");//經過索引得到指定列的名稱
			System.out.println(metaData.getColumnName(2) + "         ");
			System.out.println(meatData.getColumnName(3) + "         ");
			while(rs.next()) {
				int id = rs.getInt(1);                                  //經過索引得到指定列的值
				String name = rs.getString(2);
				String sex = rs.getString(3);
				System.out.println(id + " " + name + " " + sex);
			}
			rs.close();
			prpdStmt.close();
			conn.close();
		}catch(SQLException e) {
			e.printStackTrace();
		}
	}

}

2、源碼:

相關文章
相關標籤/搜索