这就是我所拥有的
String LabelText= SemiLabel.getText(); //the value in the label is "Year 1 Sem I";
Connection conn=dbc.connect() ;
这就是我所拥有的
String LabelText= SemiLabel.getText(); //the value in the label is "Year 1 Sem I";
Connection conn=dbc.connect() ;
Resultset rs =conn.createStatement().excuteQuery("Select SchoolOfMusic, Semester FROM Units, registeredUnitsTable WHERE Semester = " +LabelText)
问题是第一行'1 Sem I'
附近出现语法错误。
我如何在sql中转义它以获取'Year 1 Sem I'
而不是'1 Sem I'
,将我收到的数据与数据库专栏学期的数据进行比较。
答案 0 :(得分:3)
使用PreparedStatement
将字符串插入查询:
Connection conn=dbc.connect();
PreparedStatement ps = conn.prepareStatement("Select SchoolOfMusic, Semester FROM Units, registeredUnitsTable WHERE Semester = ?");
ps.setString(1, LabelText);
ResultSet rs = ps.executeQuery();
答案 1 :(得分:0)
您需要在查询中将文本指定为单个SQL文字值。简单的方法是用单引号括起文本:
Resultset rs =conn.createStatement()
.excuteQuery("Select SchoolOfMusic, Semester FROM Units, registeredUnitsTable WHERE Semester = '"
+ LabelText + "'")
更好的方法是让驱动程序使用占位符处理它并调用setObject()
。