SQL查询参数

问题描述:

有人可以给下面的答案吗?SQL查询参数

Statement statement; 

string sql; 

sql = "SELECT gender FROM people WHERE gender = 'M' "; 

results = statement.executeQuery(sql); 

在我的字符串SQL查询中表示'M'需要做什么样的格式化?

注:性别是'M'或'F',我想返回所有性别为'M'的行。

+0

你是什么意思。什么是性别的数据类型? – 2012-07-06 10:22:58

+0

我在解决你的意思时遇到了麻烦......关心这个问题有点不同吗? – Charleh 2012-07-06 10:23:55

+0

您发布的SQL是正确的;你会得到什么错误? – 2012-07-06 10:35:51

'M'是指定VARCHAR列值的正确方法,如果您手动编写查询。

但更好的办法通常是使用准备好的语句:

stmt = connect.prepareStatement("SELECT gender FROM people WHERE gender = ?"); 
stmt.setString(1, "M"); 

这种方法的好处是,JDBC将自动转换参数你,正确逃吧,等

对于例如,在您尝试将D'Angelo(普通意大利语名称)添加到数据库后,您的代码将变得更加复杂。

+0

我不知道你是否知道某些JDBC的答案。要访问char(1)的性别列,我必须使用results.getString(...)?或者像getChar那样有一个getter(..) – iTEgg 2012-07-06 11:49:30

+0

你将不得不使用'getString()'。 JDBC在不同列宽之间没有区别。 – 2012-07-06 11:54:32

+0

谢谢你的帮助。 – iTEgg 2012-07-06 11:57:10