1. 程式人生 > >sql初——基礎

sql初——基礎

ava [] con c擴展 where () gets 特點 user

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,第一次

使用next()就將指針指向返回結果集的第一行。每使用一次next(),指針就指向下一行,這時候你就可以使用rs.getObject()或者getInt()或者getString()之類的方法返回該行的某一個字段的值,也就是getObject()方法裏面的參數可以傳遞索引(索引由1開始),即如果你的數據庫第一列的數據叫id,那你可以用getObject("id")或者getObject(1)得到你的rs目前指著的那一條數據的該列的值。當next()成功的時候其實會返回一個布爾值true,當指針指到最後一行的後面時候,即afterLast()就返回布爾值false。 所以第一次調用next()的時候應該是指向第一行數據。next()在指針指向第一行之前到最後一行之間的返回true的,也就是當你的指針已經指向到最後一行的數據集了,再用一次next()是返回true的,但此時再用一次next()就是false,因為執政已經到最後一行的後面了(也就是afterLast).

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初——基礎