To send an instance of a user-defined class as column data, use one of the following setObject( ) methods, as specified in the PreparedStatement interface:
void setObject(int parameterIndex, Object x, int targetSqlType, int scale) throws SQLException;
void setObject(int parameterIndex, Object x, int targetSqlType) throws SQLException;
void setObject(int parameterIndex, Object x) throws SQLException;
In jConnect 5.5, to send a Java object, you can use the java.sql.Types.JAVA_OBJECT target sqlType, or you can use java.sql.Types.OTHER.
The following example defines an Address class, shows the definition of a Friends table that has an Address column whose datatype is the Address class, and inserts a row into the table.
public class Address implements Serializable
{
public String streetNumber; public String street; public String apartmentNumber; public String city; public int zipCode;
//Methods
...
}
/* This code assumes a table with the following structure ** Create table Friends:
** (firstname varchar(30) , ** lastname varchar(30), ** address Address, ** phone varchar(15))
*/
// Connect to the database containing the Friends table.
Connection conn =
DriverManager.getConnection("jdbc:sybase:Tds:localhost:5000",
"username", "password");
// Create a Prepared Statement object with an insert statement
//for updating the Friends table.
PreparedStatement ps = conn.prepareStatement("INSERT INTO
Friends values (?,?,?,?)");
// Now, set the values in the prepared statement object, ps.
// set firstname to "Joan."
ps.setString(1, "Joan");
// Set last name to "Smith."
ps.setString(2, "Smith");
// Assuming that we already have "Joan_address" as an instance
// of Address, use setObject(int parameterIndex, Object x) to
// set the address column to "Joan_address."
ps.setObject(3, Joan_address);
// Set the phone column to Joan’s phone number.
ps.setString(4, "123-456-7890");
// Perform the insert.
ps.executeUpdate();
| Copyright © 2003. Sybase Inc. All rights reserved. |
|
|