[英]How can I pass Object to SQL server stored procedure using java code?
public class Student{
protected String Name;
Protected String Marks;
public Student(String name, String marks){
this.Name=name;
this.Marks=marks;
}
//getters and setters for above
}
在另一堂課上,我嘗試了以下
Student[] std=new Student[2];
std[0]=new Student("user1","80");
std[1]=new Student("user2","70");
String section = "A";
Connection conn=DriverManager.getConnection("jdbc:sqlserver://....");
CallableStatement stmt= conn.prepareCall("{Call UserDatils(?,?,?)}");
stmt.setString(2, section);
//stmt.setArray(3, std);
stmt.setObject(3, std);
stmt.registerOutParameter(1, java.sql,Types.VARCHAR);
stmt.execute();
這里的問題是下面兩行。
//stmt.setArray(3, std);
stmt.setObject(3, std);
當我使用setObject運行以上命令時,它說:“不支持從UNKNOWN到UNKNOWN的轉換。
我無法設置此值。
請幫助我將上述學生信息傳遞給存儲過程。
謝謝。
首先,我將嘗試使用std [0]代替std。
通常,如果您需要將一個對象的值賦給另一個對象,則需要一個對象的getter和另一個對象的setter,這意味着您需要確切地知道這兩個對象的實例成員是什么,基本上需要知道這兩個對象參與。 類似地,在上述情況下,當您在setObject方法中傳遞Student對象時,JDBC不知道如何將Student對象轉換為sql對象。 JDBC具有一組為某些Java對象定義到相應sql類型的自定義映射。 請參閱docs: http : //docs.oracle.com/javase/1.5.0/docs/guide/jdbc/getstart/mapping.html
因此,無法直接從任何Java類型映射到sql類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.