sql初——基礎
1.JDBC:
- Java數據庫連接(Java Database Connectivity,JDBC),是一種用於執行SQL語句的Java API,它由一組用Java編程語言編寫的類和接口組成。
- JDBC為數據庫開發人員提供了一個標準的API,使他們能夠用純Java API來編寫數據庫應用程序。
- 使用JDBC編寫的程序能夠自動地將SQL語句傳送給相應的數據庫管理系統。
- JDBC擴展了Java的功能,由於Java語言本身的特點,使得JDBC具有簡單、健壯、安全、可移植、獲取方便等優勢。
2.JDBC API
接口/類 | 功能說明 |
---|---|
DriverManager | 數據庫驅動管理類,用於加載和卸載各種驅動程序,並建立於數據庫的連接 |
Connection | 此接口用於連接數據庫 |
Statement | 此接口用於執行SQL語句並將數據檢索到ResultSet中 |
ResultSet | 結果集接口,提供檢索SQL語句返回數據的各種方法 |
PreparedStatement | 此接口用於執行預編譯的SQL語句 |
CallableStatement | 此接口用於執行SQL存儲過程的語句 |
3.JDBC結構
1.JDBC API是Java開發工具包(JDK)的組成部份:
JDBC驅動程序管理器
JDBC驅動程序測試工具包
JDBC-ODBC橋
2.JDBC驅動程序管理器是JDBC體系結構的支柱,其主要作用是把Java應用程序連接到正確的JDBC驅動程序上。
3.JDBC驅動程序測試工具包為JDBC驅動程序的運行提供一定的可信度,只有通過JDBC驅動程序測試包的驅動程序才被認為是符合JDBC標準的。
4.JDBC-ODBC橋使ODBC驅動程序可被用作JDBC驅動程序。其目標是為方便實現訪問某些不常見的DBMS,它的實現為JDBC的快速發展提供了一條途徑
4.JDBC開發步驟
使用JDBC訪問數據庫的基本步驟一般如下:
- 加載JDBC驅動程序
- 創建數據庫連接
- 創建Statement對象
- 執行SQL語句
- 處理返回結果
-
關閉創建的對象
5.有關next()
ResultSet是您訪問數據庫返回的數據表,也就是結果集合,一開始是處於第一行之前,即beforeFirst,第一次
6.第一個程序代碼:
import java.sql.*;
public class Four
{
private static String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static String url="jdbc:sqlserver://888888-pc:1433;DatabaseName=StudentScore";
private static String user="sa";
private static String password="###";
@SuppressWarnings("resource")
public static void main(String[] args)
{
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
try
{
Class.forName(driver);
conn=DriverManager.getConnection(url,user,password);
//stmt=conn.createStatement();
/* stmt.executeUpdate("CREATE DATABASE HEO");//創建數據庫
stmt.close();
conn.close();
*/
url="jdbc:sqlserver://888888-pc:1433;DatabaseName=HELLO";
conn=DriverManager.getConnection(url,user,password);
stmt=conn.createStatement();//打開數據庫
DatabaseMetaData meta=conn.getMetaData();//判斷表是否存在
ResultSet set=meta.getTables(null, null, "test", null);
if(!set.next())//不存在就創建表
{
stmt.executeUpdate("CREATE TABLE test (sNo CHAR(20) NOT NULL PRIMARY KEY,sName char(20),sex CHAR(2) NOT NULL)");
}
// stmt.executeUpdate("INSERT INTO test(sNo,sName,sex) VALUES(‘2018‘,‘hi‘,‘男‘)");
//stmt.executeUpdate("INSERT INTO test(sNo,sName,sex) VALUES(‘2017‘,‘cs‘,‘女‘)");//插入數據
rs=stmt.executeQuery("SELECT *from test WHERE sName=‘sc‘");//進行挑選
while(rs.next())
{
String no=rs.getString("sNo");
String name=rs.getString("sName");
String sex=rs.getString("sex");
System.out.println(no+" "+name+" "+sex+" ");
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
if(rs!=null) rs.close();
if(stmt!=null) stmt.close();
if(conn!=null) conn.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
sql初——基礎