Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
JDBC sürücüsünü indirin
BU SQL Server için Microsoft JDBC Sürücüsü örnek uygulaması , getCharacterStream yöntemini kullanarak SQL Server veritabanından büyük bir tek sütunlu değerin nasıl alınduğunu gösterir.
Bu örneğin kod dosyası ReadLargeData.java olarak adlandırılır ve aşağıdaki konumda bulunabilir:
\<installation directory>\sqljdbc_<version>\<language>\samples\adaptive
Gereksinimler
Bu örnek uygulamayı çalıştırmak için AdventureWorks2025 örnek veritabanına erişmeniz gerekir. Ayrıca classpath'i mssql-jdbc jar dosyasını içerecek şekilde ayarlamanız gerekir. Sınıf yolu ayarlama hakkında daha fazla bilgi için bkz. JDBC Sürücüsünü Kullanma.
Uyarı
SQL Server için Microsoft JDBC Sürücüsü, tercih ettiğiniz Java Çalışma Zamanı Ortamı (JRE) ayarlarına bağlı olarak kullanılacak mssql-jdbc sınıf kitaplığı dosyalarını sağlar. Hangi JAR dosyasının seçileceği hakkında daha fazla bilgi için bkz. JDBC Sürücüsü için Sistem Gereksinimleri.
Example
Aşağıdaki örnekte örnek kod AdventureWorks2025 veritabanıyla bağlantı kurar. Ardından, örnek kod örnek veriler oluşturur ve parametreli bir sorgu kullanarak Production.Document tablosunu güncelleştirir.
Ayrıca örnek kod, SQLServerStatement sınıfının getResponseBuffering yöntemini kullanarak uyarlamalı arabelleğe alma modunun nasıl alınduğunu gösterir. JDBC sürücü sürümü 2.0 sürümünden başlayarak responseBuffering connection özelliğinin varsayılan olarak "uyarlamalı" olarak ayarlandığını unutmayın.
Ardından, SQLServerStatement nesnesiyle bir SQL deyimi kullanarak örnek kod SQL deyimini çalıştırır ve döndürdüğü verileri bir SQLServerResultSet nesnesine yerleştirir.
Son olarak, örnek kod sonuç kümesindeki veri satırları arasında yinelenir ve bazı verilere erişmek için getCharacterStream yöntemini kullanır.
import java.io.IOException;
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.microsoft.sqlserver.jdbc.SQLServerStatement;
public class ReadLargeData {
public static void main(String[] args) {
// Create a variable for the connection string.
String connectionUrl = "jdbc:sqlserver://<server>:<port>;databaseName=AdventureWorks;user=<user>;password=<password>";
// Create test data as an example.
StringBuffer buffer = new StringBuffer(4000);
for (int i = 0; i < 4000; i++)
buffer.append((char) ('A'));
try (Connection con = DriverManager.getConnection(connectionUrl);
Statement stmt = con.createStatement();
PreparedStatement pstmt = con.prepareStatement("UPDATE Production.Document SET DocumentSummary = ? WHERE (DocumentID = 1)");) {
pstmt.setString(1, buffer.toString());
pstmt.executeUpdate();
// In adaptive mode, the application does not have to use a server cursor
// to avoid OutOfMemoryError when the SELECT statement produces very large
// results.
// Create and execute a SQL statement that returns some data.
String SQL = "SELECT Title, DocumentSummary FROM Production.Document";
// Display the response buffering mode.
SQLServerStatement SQLstmt = (SQLServerStatement) stmt;
System.out.println("Response buffering mode is: " + SQLstmt.getResponseBuffering());
SQLstmt.close();
// Get the updated data from the database and display it.
ResultSet rs = stmt.executeQuery(SQL);
while (rs.next()) {
Reader reader = rs.getCharacterStream(2);
if (reader != null) {
char output[] = new char[40];
while (reader.read(output) != -1) {
// Do something with the chunk of the data that was
// read.
}
System.out.println(rs.getString(1) + " has been accessed for the summary column.");
// Close the stream.
reader.close();
}
}
}
// Handle any errors that may have occurred.
catch (SQLException | IOException e) {
e.printStackTrace();
}
}
}