如何将表值参数从Java传递到SQL Server存储过程?

我有一个Student具有以下属性的类:

Name, Department, Address, Grade.

现在,我有一个ArrayList包含这样的Student对象的对象,

List<Student> stuList = new ArrayList<Student>();

stuList.add(new Student("Tom","Comp", "123 street", "A"));

stuList.add(new Student("Jery","Comp", "456 street", "A+"));

stuList.add(new Student("Mac","Maths", "Dum Street", "B"));

我需要将此数组列表传递给sql服务器存储过程,并将学生对象数据插入表中。如何在Java中最好地实现这一目标?我需要有一个存储过程。

Java版本8,Sql Server 2014(如果有任何用途)。

回答:

使用Mark Rotteveel提供的输入,我能够做到。谢谢马克,肖恩也感谢您的输入。这是可能对您有用的任何人的工作代码。

String jdbcurl = "jdbc:sqlserver://TestServer:1433;DatabaseName=Student";

connection = DriverManager.getConnection(jdbcurl,"username","password");

SQLServerDataTable stuTypeDT = new SQLServerDataTable();

stuTypeDT.addColumnMetadata("StudentId", java.sql.Types.NUMERIC);

stuTypeDT.addColumnMetadata("Name", java.sql.Types.VARCHAR);

stuTypeDT.addColumnMetadata("Department", java.sql.Types.VARCHAR);

stuTypeDT.addColumnMetadata("Address", java.sql.Types.VARCHAR);

stuTypeDT.addRow("1","Tom", "A", "123 Street");

stuTypeDT.addRow("2","Jery", "B", "456 Street");

stuTypeDT.addRow("3","Mac", "C", "Vancour");

String ececStoredProc = "EXEC InsertStudentInfo ?";

SQLServerPreparedStatement pStmt = (SQLServerPreparedStatement)connection.prepareStatement(ececStoredProc);

pStmt.setStructured(1, "dbo.StudentInfoType", stuTypeDT);

pStmt.execute();

以上是 如何将表值参数从Java传递到SQL Server存储过程? 的全部内容, 来源链接: utcz.com/qa/402608.html

回到顶部