我要查询的是在 user 表中找 name=‘王梅’的数据。
SQL语句是:SELECT * FROM user WHERE name='王梅' ,这条语句在pgAdmin中能够查询出。但是写在JAVA里查不出。
先看代码。package jdbc;import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;import java.util.Properties;public class Jdbc_test
{
public static void main(String args[])
{
String sql_ = "SELECT * FROM user WHERE name='王梅'";                Properties pro_ = new Properties();
pro_.put("user", "postgres");
pro_.put("password", "zhimakaimen(^-^)"); try
{
Class.forName("org.postgresql.Driver");
}
catch (ClassNotFoundException e)
{
System.out.println( e );
} try
{
Connection connection = DriverManager.getConnection("jdbc:postgresql://10.4.201.36:5432/AcapDB", pro_); Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql_);
while (rs.next())
{
//System.out.println("rs.next()");
}
rs.close();
stmt.close();
connection.close();
}
catch (SQLException e)
{
System.out.println( e );
}
}
}理论上应该能查出来吧。但是查不出的。
还有一点,我将文件以GBK编译或UTF编译,都不行的。请问这是怎么回事。

解决方案 »

  1.   

    JAVA编码用过GBK,也用过GB2312都不行的啊。
      

  2.   

    设置以下客户端编码试试:set client_encoding = utf8;
      

  3.   

    怎么在客户端设置 client_encoding=utf-8
      

  4.   

    我设置了客户端 set client_encoding=utf-8 ;
    会报以下错误。
    org.postgresql.util.PSQLException: 这服务器的 client_encoding 参数被改成 sql_ascii,JDBC 驱动程序请求需要 client_encoding 为 UNICODE 以正确工作。
      

  5.   

    不懂JAVA,不过既然在pgAdmin中可以查询出来,我想会是不是数据引擎问题,比如user,name是数据引擎关键字?你可以尝试在SQL语句中给它们加上[]号...
      

  6.   

    如果页面上出现问号或什么都不出的话,可能是编码的问题,这是因为,你从外部程序中读数据时,程序接口要的与数据库传出来的数据格式是不一致造成的。 
    建议在调用存储过程前执行如下语句: 
    php程序执行(mysql_query ,mysqli_query 是PHP函数,其他程序也有类似的函数,java 的不太清楚,但是你要用java的,再试试。): 
    mysql_query("SET NAMES 'utf8'",$link); // 你可以更改其他字符集,我使用的是 utf8 。你的程序是用哪个字符集存储的,就用哪个,我的程序是utf8,不过,一般程序都是这个字符集,有些例外,你可以自己定义存储的字符集。
    或: 
    mysqli_query("SET NAMES 'utf8'",$link); 问题即可解决。 
      

  7.   

    又是 编码问题,老生常谈了。最简单的方法  
    把  '王梅'   用 native2ascii.exe  转成  \u738b\u6885 在JAVA 代码中写中文就是你的不对。        数据库  UTF-8  (一定要养成习惯)
           java   UTF-8
           JSP    UTF-8        如果是页面来的变量 ,转一下就行了。或者做个 FILTER  
      

  8.   

    我遇到同样问题,前提为数据库是sql_ascii字符集不能修改,用jdbc 连接后,输出码不对。
      

  9.   

    遇到同样的问题,在jdbc连接中输出语句到数据库中,会报这个错误