Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我想从jdbctemplate调用存储过程,需要在存储过程中生成pk_Java_Spring_Stored Procedures_Jdbctemplate - Fatal编程技术网

Java 我想从jdbctemplate调用存储过程,需要在存储过程中生成pk

Java 我想从jdbctemplate调用存储过程,需要在存储过程中生成pk,java,spring,stored-procedures,jdbctemplate,Java,Spring,Stored Procedures,Jdbctemplate,在java类中 Create procedure College.Create_Student @Roll Number VARCHAR(7) = NULL, @Name VARCHAR(35) = NULL, @Phone VARCHAR(10) = NULL, @Email VARCHAR(20) = NULL # Insert into Student Table and return the primary ke

在java类中

    Create procedure College.Create_Student

        @Roll Number VARCHAR(7) = NULL,
        @Name VARCHAR(35) = NULL,
        @Phone VARCHAR(10) = NULL,
        @Email VARCHAR(20) = NULL

# Insert into Student Table and return the primary key 
我正在尝试获取存储过程中生成的主键。请帮忙


PS:我是第一次这样做。

对于简单的过程,您可以使用jdbcTemplate的更新方法:

String sql = "{call college.create_student(?,?,?,?)}";
String studentUniqueNum = jdbcTemplate.queryForList(sql,
new Object[] { roll_num,name,phone,email},String.class);

此方法将返回您的主键。

对于简单的过程,您可以使用jdbcTemplate的更新方法:

String sql = "{call college.create_student(?,?,?,?)}";
String studentUniqueNum = jdbcTemplate.queryForList(sql,
new Object[] { roll_num,name,phone,email},String.class);
此方法将返回您的主键。

实现此方法的步骤

  • 创建一个pojo类,该类包含需要与存储过程输入变量和另一个pojo匹配的名称(字符串)和类型(int) 为具有相同参数的输出初始化

  • 在服务类中,为上面创建的pojo类创建一个2列表,一个用于输入,一个用于输出

  • 实例化pojo并添加名称和类型,该名称和类型应与存储过程输入和类型参数匹配 对于所有输入变量

  • 创建一个函数,该函数扩展spring framework的StoredProcess,并获取jdbctemaplate、过程名称、输入和输出 迭代这个列表并使用spring的delcare参数 为每个输入和输出创建Sql参数的框架 输出参数,然后编译

  • 创建一个hashMap,用于将输入参数与值映射,其中key是输入变量名,value是实际输入

  • 最后一步使用spring的execute方法并传递在上述步骤中创建的hashmap

  • 最终结果再次返回一个hashmap,它实际保存输出参数及其值(如步骤2所述)

  • 实现这一目标的步骤

  • 创建一个pojo类,该类包含需要与存储过程输入变量和另一个pojo匹配的名称(字符串)和类型(int) 为具有相同参数的输出初始化

  • 在服务类中,为上面创建的pojo类创建一个2列表,一个用于输入,一个用于输出

  • 实例化pojo并添加名称和类型,该名称和类型应与存储过程输入和类型参数匹配 对于所有输入变量

  • 创建一个函数,该函数扩展spring framework的StoredProcess,并获取jdbctemaplate、过程名称、输入和输出 迭代这个列表并使用spring的delcare参数 为每个输入和输出创建Sql参数的框架 输出参数,然后编译

  • 创建一个hashMap,用于将输入参数与值映射,其中key是输入变量名,value是实际输入

  • 最后一步使用spring的execute方法并传递在上述步骤中创建的hashmap

  • 最终结果再次返回一个hashmap,它实际保存输出参数及其值(如步骤2所述)


  • 谢谢你的回答,但那不是我想要的。经过这么多的搜索。。。我在store过程中寻找一个带有输出参数的答案,以及如何使用JDBCTemplate在java中检索它。谢谢你的答案,但这不是我想要的。经过这么多的搜索。。。我正在寻找存储过程中带有输出参数的答案,以及如何在java with jdbctemplate中检索它