Java 我的sql查询不起作用
我对java中的数据库有一个问题 我的代码只是我项目的一小部分Java 我的sql查询不起作用,java,mysql,database,select,Java,Mysql,Database,Select,我对java中的数据库有一个问题 我的代码只是我项目的一小部分 public void Read_from_DB(int exhibition_id){ Statement stmt = null; Connection connect = null; try { connect=MYConnection.new_connection(); stmt
public void Read_from_DB(int exhibition_id){
Statement stmt = null;
Connection connect = null;
try {
connect=MYConnection.new_connection();
stmt = connect.createStatement();
QuestionCatalog.get_QuestionCatalog_instance().setShow_quest(new ArrayList<Question>());
String sql = "SELECT * FROM question WHERE Selection=0 AND exhibition_id="+exhibition_id;
//System.out.println(sql);
ResultSet rs = stmt.executeQuery(sql);
System.out.println("!");
System.out.println("->"+rs.getFetchSize());
while(rs.next()){
Question jd=new Question();
System.out.println("!!!");
jd.setQuestion_id(rs.getInt("Question_id"));
jd.setQuestion(rs.getString("Question"));
jd.setQuestion(rs.getString(exhibition_id));
jd.getOption_2().setContent(rs.getString("Content2"));
QuestionCatalog.get_QuestionCatalog_instance().getShow_quest().add(jd);
System.out.println("size"+QuestionCatalog.get_QuestionCatalog_instance().getShow_quest().size());
MYConnection.close_connection(stmt, connect);
}
}catch (Exception e) {
}
}
和MYConnection.new_连接;在返回连接的部分代码中,我在它工作的另一个类中测试了它
控制台中的结果是:
SELECT * FROM Question WHERE Selection=0 AND exhibition_id=1
!
->0
它没有显示!!!这是System.out.println的结果!!!;
那么我认为它不起作用:|
谢谢
p、 这是我的照片
我从您的问题中了解到,表名或列名上区分大小写的名称的输出不正确。我说得对吗 据我所知,像SELECT、FROM等保留字在所有操作系统中都是区分大小写的。在*ix操作系统环境中,所有其他用户定义的对象名称都区分大小写。但不是在Windows操作系统环境中 但所有RDBMS配置都应该允许跨平台部署不区分大小写。这就是为什么您从一个问题到另一个问题的更改没有抛出错误的原因 关于您的查询结果: 我担心您已经在不同的数据库或服务器上测试了您的查询。他们可能没有相同的数据,因此在rs。。。。循环 按如下所示更改代码并查看输出:
ResultSet rs = stmt.executeQuery(sql);
System.out.println("!");
System.out.println("->"+rs.getFetchSize());
rs.beforeFirst();
rs.last();
int rowCount = rs.getRow();
System.out.println( "---> rowCount: " + rowCount );
rs.beforeFirst();
while( ...
另请参阅:
尝试将上述查询直接传递给数据库。你得到了什么结果?@Marty McVry:没什么,我主要说的是sysout的结果,在我的数据库里什么都没有发生,当我写错qury时,它不会给我任何错误!!!向我们展示一些示例数据。您的mysql表中的Selection=0且EXPLATION_id=1可能没有问题,因此您的select语句返回0行。它怎么会给您一个错误:您正在捕获异常,并完全忽略它。放下catch块,至少添加e.printStackTrace;抛出新的RuntimeExceptionOne;在catch block.emm中,我知道,但是当我更改表名和表行的敏感度时,它不会给我任何错误。我的输出是:Creating语句。。。从问题中选择*,其中选择=0,任务\u poll\u id=1!->0-->行数:3!!!
ResultSet rs = stmt.executeQuery(sql);
System.out.println("!");
System.out.println("->"+rs.getFetchSize());
rs.beforeFirst();
rs.last();
int rowCount = rs.getRow();
System.out.println( "---> rowCount: " + rowCount );
rs.beforeFirst();
while( ...