Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
JDBC-stuurprogramma downloaden
Dit Microsoft JDBC-stuurprogramma voor sql Server-voorbeeldtoepassing laat zien hoe u getter-methoden voor resultatensets gebruikt om basiswaarden voor SQL Server-gegevenstypen op te halen en hoe u methoden voor het bijwerken van resultatensets gebruikt om deze waarden bij te werken.
Het codebestand voor dit voorbeeld heeft de naam BasicDataTypes.java en bevindt zich op de volgende locatie:
\<installation directory>\sqljdbc_<version>\<language>\samples\datatypes
Requirements
Als u deze voorbeeldtoepassing wilt uitvoeren, moet u het klassepad zo instellen dat het jar-bestand mssql-jdbc wordt opgenomen. U hebt ook toegang nodig tot de voorbeelddatabase AdventureWorks2025. Zie Het JDBC-stuurprogramma gebruiken voor meer informatie over het instellen van het klassepad.
In het voorbeeld wordt de vereiste tabel gemaakt en worden voorbeeldgegevens ingevoegd in de voorbeelddatabase AdventureWorks2025:
Opmerking
Het Microsoft JDBC-stuurprogramma voor SQL Server biedt mssql-jdbc-klassebibliotheekbestanden die gebruikt kunnen worden, op basis van de instellingen voor de Java Runtime Environment (JRE). Zie Systeemvereisten voor het JDBC-stuurprogramma voor meer informatie over welk JAR-bestand u wilt kiezen.
Example
In het volgende voorbeeld maakt de voorbeeldcode een verbinding met de AdventureWorks2025-database en haalt vervolgens één rij gegevens op uit de testtabel DataTypesTable. De aangepaste displayRow-methode wordt vervolgens aangeroepen om alle gegevens in de resultatenset weer te geven met behulp van verschillende get<Type-methoden> van de klasse SQLServerResultSet .
Vervolgens gebruikt het voorbeeld verschillende updatetypemethoden<> van de klasse SQLServerResultSet om de gegevens in de resultatenset bij te werken. Vervolgens wordt de updateRow-methode aangeroepen om die gegevens weer in de database op te nemen.
Ten slotte vernieuwt het voorbeeld de gegevens in de resultatenset en roept de aangepaste displayRow-methode opnieuw aan om de gegevens in de resultatenset weer te geven.
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Time;
import java.sql.Timestamp;
import com.microsoft.sqlserver.jdbc.SQLServerResultSet;
import microsoft.sql.DateTimeOffset;
public class DatatypesTest {
private static final String tableName = "DataTypesTable";
public static void main(String[] args) {
// Create a variable for the connection string.
String connectionUrl = "jdbc:sqlserver://<server>:<port>;encrypt=true;databaseName=<database>;user=<user>;password=<password>";
try (Connection con = DriverManager.getConnection(connectionUrl);
Statement stmt = con.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);) {
dropAndCreateTable(stmt);
insertOriginalData(con);
String SQL = "SELECT * FROM " + tableName;
ResultSet rs = stmt.executeQuery(SQL);
rs.next();
displayRow("ORIGINAL DATA", rs);
// Update the data in the result set.
rs.updateString(2, "B");
rs.updateString(3, "Some updated text.");
rs.updateBoolean(4, true);
rs.updateDouble(5, 77.89);
rs.updateDouble(6, 1000.01);
long timeInMillis = System.currentTimeMillis();
Timestamp ts = new Timestamp(timeInMillis);
rs.updateTimestamp(7, ts);
rs.updateDate(8, new Date(timeInMillis));
rs.updateTime(9, new Time(timeInMillis));
rs.updateTimestamp(10, ts);
rs.updateTimestamp(11, ts);
rs.updateObject(12, 987654321L, microsoft.sql.Types.SQL_VARIANT);
// -480 indicates GMT - 8:00 hrs
((SQLServerResultSet) rs).updateDateTimeOffset(11, DateTimeOffset.valueOf(ts, -480));
rs.updateRow();
// Get the updated data from the database and display it.
rs = stmt.executeQuery(SQL);
rs.next();
displayRow("UPDATED DATA", rs);
}
// Handle any errors that may have occurred.
catch (SQLException e) {
e.printStackTrace();
}
}
private static void displayRow(String title, ResultSet rs) throws SQLException {
System.out.println(title);
System.out.println(rs.getInt(1) + " , " + // SQL integer type
rs.getString(2) + " , " + // SQL char type
rs.getString(3) + " , " + // SQL varchar type
rs.getBoolean(4) + " , " + // SQL bit type
rs.getDouble(5) + " , " + // SQL decimal type
rs.getDouble(6) + " , " + // SQL money type
rs.getTimestamp(7) + " , " + // SQL datetime type
rs.getDate(8) + " , " + // SQL date type
rs.getTime(9) + " , " + // SQL time type
rs.getTimestamp(10) + " , " + // SQL datetime2 type
((SQLServerResultSet) rs).getDateTimeOffset(11) + " , " + // SQL datetimeoffset type
rs.getObject(12)); // SQL sqlvariant type
System.out.println();
}
private static void dropAndCreateTable(Statement stmt) throws SQLException {
stmt.executeUpdate("if object_id('" + tableName + "','U') is not null" + " drop table " + tableName);
String sql = "create table " + tableName + " (" + "c1 int, " + "c2 char(20), " + "c3 varchar(20), " + "c4 bit, "
+ "c5 decimal(10,5), " + "c6 money, " + "c7 datetime, " + "c8 date, " + "c9 time(7), "
+ "c10 datetime2(7), " + "c11 datetimeoffset(7), " + "c12 sql_variant" + ");";
stmt.execute(sql);
}
private static void insertOriginalData(Connection con) throws SQLException {
String sql = "insert into " + tableName + " values( " + "?,?,?,?,?,?,?,?,?,?,?,?" + ")";
try (PreparedStatement pstmt = con.prepareStatement(sql)) {
pstmt.setObject(1, 100);
pstmt.setObject(2, "original text");
pstmt.setObject(3, "original text");
pstmt.setObject(4, false);
pstmt.setObject(5, 12.34);
pstmt.setObject(6, 56.78);
pstmt.setObject(7, new java.util.Date(1453500034839L));
pstmt.setObject(8, new java.util.Date(1453500034839L));
pstmt.setObject(9, new java.util.Date(1453500034839L));
pstmt.setObject(10, new java.util.Date(1453500034839L));
pstmt.setObject(11, new java.util.Date(1453500034839L));
pstmt.setObject(12, 123456789L, microsoft.sql.Types.SQL_VARIANT);
pstmt.execute();
}
}
}