功能是通过输入一个字符来获取该字符的拼音
下面代码中传递进来的参数是ch
给的是‘呵’之类的中文字符时
可以正确返回拼音
但是如果是数字(全角输入) result.next给的值都是false 即无法查询该数字的拼音
在我直接拿这条SQL做查询时能在数据库中查到结果不知道是什么原因,请高手指点下~在数据库里我存放记录 使用INFORMIX数据库
1 yi 1 2009-06-01 12:21:19.0 1 0
呵 he 1 2002-11-01 00:00:00.0 1 0
‘1’是全角字符
sql = "SELECT * FROM dic_name_words WHERE word=? AND efficacy='1' AND trim(tone)<>'' AND tone is not null";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, ch);
result = pstmt.executeQuery();
while (result.next()) {
System.out.println("OKKKKK");
vt.add(result.getString("spell") + result.getString("tone"));
}
下面代码中传递进来的参数是ch
给的是‘呵’之类的中文字符时
可以正确返回拼音
但是如果是数字(全角输入) result.next给的值都是false 即无法查询该数字的拼音
在我直接拿这条SQL做查询时能在数据库中查到结果不知道是什么原因,请高手指点下~在数据库里我存放记录 使用INFORMIX数据库
1 yi 1 2009-06-01 12:21:19.0 1 0
呵 he 1 2002-11-01 00:00:00.0 1 0
‘1’是全角字符
sql = "SELECT * FROM dic_name_words WHERE word=? AND efficacy='1' AND trim(tone)<>'' AND tone is not null";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, ch);
result = pstmt.executeQuery();
while (result.next()) {
System.out.println("OKKKKK");
vt.add(result.getString("spell") + result.getString("tone"));
}
其实也可以换个问题
INFORMIX下我这个查询可以执行
但是用jdbc的方式中间是不是参数传递会有问题?
2、如果直接执行sql可以,检查是否传入的参数有问题。一般来说,直接执行sql可以,用jdbc也可以的
全角和半角都试过了
不能返回结果现在我直接
sql = "SELECT * FROM dic_name_words WHERE word='呵' AND efficacy='1' AND trim(tone)<>'' AND tone is not null";
stmt = conn.createStatement();
result = stmt.executeQuery(sql);
这个是可以成功的但是
sql = "SELECT * FROM dic_name_words WHERE word='1' AND efficacy='1' AND trim(tone)<>'' AND tone is not null";
stmt = conn.createStatement();
result = stmt.executeQuery(sql);
是失败的或者那个字符是半角的 也是一样
不管是汉字还是数字 全角还是半角在ch传递参数执行时就有问题了
如果是汉字 返回结果正确
如果是数字 不管编码如何 查询不成功不知道这个参数传递有什么问题
像我写在4楼的代码
我不传参数
直接写死执行也不能成功查询
但是执行数字查询时
result结果集为空