1. 程式人生 > >Java連線SQLserver資料庫

Java連線SQLserver資料庫

首先,需要有一個數據庫,我用的是SQL server 2008版,然後需要去下載一個JDBC驅動,我用的是JDBC for SQLserver 6.0版本,可以去下載這個

sqljdbc_6.0.8112.100_chs.tar.gz:     https://page63.ctfile.com/fs/15198163-215756610

下載解壓之後裡面會有jre7與jre8,他們兩個功能一樣的,只是對應不同版本。

接下來就要開始連線資料庫啦

  (1)用windows驗證方式連線資料庫:這種方式可能要求管理員許可權,至少部分情況下會導致無法正常訪問資料庫。因此不建議採用!

        (2)用sql server身份驗證方式連線資料庫。

          如果安裝sql server 2008 時是以windows身份驗證安裝的,使用者都是sa,密碼是你在裝資料庫時設定的。

再接下來,要將JDBC驅動包新增到要連線資料庫的工程下:

  1.右擊要匯入jar包的專案工程,點選properties 

2.左邊選擇java build path,右邊選擇libraries 

        3.選擇add External jars 

4.選擇jar包的所在路徑下的sqljdbc4.jar,點選開啟。

準備工作就完成了,接下來就要開始連線了

我建的資料庫名為test1 ,其中建了一個叫做Student的表,有sno 、 sname 、sage三個屬性。


        連線資料庫程式碼:

        String url = "jdbc:sqlserver://localhost:1433;DatabaseName= XXXX;";

        conn = DriverManager.getConnection(url ,"sa","XXXX");

其中第一個XXXX是你要連線的資料庫的名字,第二行的XXXX是你資料庫使用者密碼、

        完整程式碼:

        在用Java連線資料庫之前,先建立一個數據庫或者匯入一個數據庫,然後Java連線並訪問該資料庫!

package JDBC_Test;


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


public class Test {
    public static void main(String[] args) {
        Connection conn;
       Statement stmt;
       ResultSet rs;
       String url = "jdbc:sqlserver://localhost:1433;DatabaseName=test1;";
        String sql = "select * from student";
        try {
            // 連線資料庫
            conn = DriverManager.getConnection(url, "sa", "sqlnext");
            // 建立Statement物件
            stmt = conn.createStatement();
            /**
             * Statement createStatement() 建立一個 Statement 物件來將 SQL 語句傳送到資料庫。
             */
            // 執行資料庫查詢語句
            rs = stmt.executeQuery(sql);
            /**
             * ResultSet executeQuery(String sql) throws SQLException 執行給定的 SQL
             * 語句,該語句返回單個 ResultSet 物件
             */
            while (rs.next()) {
                int id = rs.getInt("Sno");
                String name = rs.getString("Sname");
                int age = rs.getInt("Sage");
                System.out.println("Sno:" + id + "\tSame:" + name + "\tSage:" + age);
            }
            if (rs != null) {
                rs.close();
                rs = null;
            }
            if (stmt != null) {
                stmt.close();
                stmt = null;
            }
            if (conn != null) {
                conn.close();
                conn = null;
            }
        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println("資料庫連線失敗");
        }
    }
}

程式執行結果為:

Sno:200215121Same:李永        Sage:20
Sno:200215122Same:張三        Sage:19
Sno:200215123Same:王思        Sage:21
Sno:200215124Same:畢羽        Sage:20