rs = st.executeQuery("select TableName_Eng from tablenameengtochi where TableName_Chi = '馆藏图书信息表'");
帮忙看看这句话的sql语句哪里有问题 就是查询不出结果来 在数据库中可以得出结果 在Java语句中需要有什么改动吗?

解决方案 »

  1.   

    最好这样写:
    String str ="select TableName_Eng from tablenameengtochi where TableName_Chi = '馆藏图书信息表'";
    rs = st.executeQuery(str);
    debug调试下sql 是不是出现中文乱码 全角空格之类的问题 
      

  2.   

    在MySQL下命令行下没有错误的 查询结果很正常 但是在程序里面就没有结果  如果把where条件去掉 就能得出正确的结果 是不是where条件书写的不正确啊??
      

  3.   

    嗯 那肯定就是你的where条件出错了 仔细检查下 该是拼写的错误吧
      

  4.   

    mysql安装时候没有选择gb2312吧  字体设置成gb2312就可以了
      

  5.   

    就是中文乱码的问题 我已经在MySQL数据库my.ini中修改了字符集为gb2312 还要怎么处理啊?
      

  6.   

    而且在MySQL中可以正常显示中文了
      

  7.   

    确定是中文字符的问题吗? 你进行debug调试了吗?
    似乎不是中文的问题 在数据库中都可以
    sql语句没写错吗?
      

  8.   

    通过mysql browser 先查看下数据库中的数据 看中文是否都正常显示
      

  9.   

    sql语句没写错 在数据库中都可以执行  但是在程序中就不行了  我调试了一个英文的 可以执行的 应该是中文的问题  就是不知怎么解决 数据库里可以显示中文
      

  10.   

    那就是不是中文的问题 
    debug下 停在st.executeQuery(sql);这句 将sql语句复制出来 到数据库里执行 看看可以不?
      

  11.   

    table表名 是这个“馆藏图书信息表”吗? 很有可能写错了呀 去看看
      

  12.   

    用PreparedStatement把~。那个可能是你传进去的sql中中文附近的‘’的问题。
    修改成以下类似的方式。还有问题请直接发消息给我 。
    public void findByTableName(){
    String find_By_TableName="select TableName_Eng from tablenameengtochi where TableName_Chi = ?";
    try {
    Connection conn=OracleDaoFactory.getConnection();
    PreparedStatement ps = conn.prepareStatement(find_By_TableName);
    ps.setString(1, "馆藏图书信息表");
    ResultSet rs = ps.executeQuery();
    while (rs.next()) {
    System.out.println(rs.getString(1));
    }
    } catch (Exception e) {
    e.printStackTrace();
    }