【发布时间】:2016-07-07 22:53:03
【问题描述】:
我创建了一个存储过程,我可以在其中通过 Callable Statement 选择我在存储过程中寻址的列。我尝试使用 SELECT SECTION NAME FROM allsections_list WHERE SECTION_NAME = ? 类似于 Prepared Statement 的语法,但我认为它不兼容使用此语法。我只是新学习这个mysql。
存储过程
CREATE STORED PROCEDURE getSECTION_NAME(OUT SECTION_NAME VARCHAR)
SELECT SECTION_NAME FROM allsections_list
代码
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
String searchSection = Section_SearchSection_Textfield.getText();
String searchSection_Name = Section_SectionName_TextField.getText();
if (searchSection.isEmpty())
{
JOptionPane.showMessageDialog(null, "Please fill up this fields");
}
else
try (Connection myConn = DBUtil.connect();
CallableStatement myCs = myConn.prepareCall("{call getSECTION_NAME(?)}"))
{
myCs.setString(1, searchSection_Name);
try (ResultSet myRs = myCs.executeQuery())
{
int resultsCounter = 0;
while (myRs.next())
{
String getSection_Name = myRs.getString(1);
Section_SectionName_TextField.setText(getSection_Name);
resultsCounter++;
}
}
}
catch (SQLException e)
{
DBUtil.processException(e);
}
当我搜索记录时。如果记录存在,则该值将打印到文本字段。但它不会打印出来。它给我一个错误getSECTION_NAME does not exist。如果我想选择多个值怎么办?因为我有一个项目,我正在制作一个注册系统。根据我阅读的内容,我特别选择了这个存储过程而不是批处理语句。任何帮助将不胜感激。谢谢!
【问题讨论】:
-
尽量不要使用存储过程,它们会引入对您的数据库的依赖。您的数据库仅用于存储数据。
-
@NimChimpsky 如果我想选择多个值怎么办?
-
动态查询几乎从来都不是一个好主意。
标签: java mysql stored-procedures jdbc