Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java结果集跳过记录_Java_Mysql - Fatal编程技术网

Java结果集跳过记录

Java结果集跳过记录,java,mysql,Java,Mysql,经过一上午的研究,我被一段简单的代码难住了 我只想从测试数据库中的原材料表中获取所有记录 以下是我正在做的: public static void fetchIthos(ArrayList<String> ithosList, UserDto user) { // TODO Auto-generated method stub //get our stuff first - raw materials and doc names and paths

经过一上午的研究,我被一段简单的代码难住了

我只想从测试数据库中的原材料表中获取所有记录

以下是我正在做的:

public static void fetchIthos(ArrayList<String> ithosList, UserDto user) {
        // TODO Auto-generated method stub

    //get our stuff first - raw materials and doc names and paths
    try {

        Connection conn = user.getConnection();
        Statement st = conn.createStatement();
        ResultSet rs = st.executeQuery("SELECT * FROM raw_material where object_id > 0");

        do {
        String result = rs.getString("raw_material_number").toString();
        System.out.println("next item: " + result);
        //ithosList.add(rs.getString("raw_material_number"));
        } while(rs.next());
    }

     catch (Exception e) {
       ithosList.equals(null);
        System.out.println("DB error : " + e);
     }
}
publicstaticvoidfetchithos(ArrayList-ithosList,UserDto-user){
//TODO自动生成的方法存根
//首先获取我们的资料-原材料和文档名称和路径
试一试{
Connection conn=user.getConnection();
语句st=conn.createStatement();
结果集rs=st.executeQuery(“从对象id>0的原材料中选择*);
做{
字符串结果=rs.getString(“原材料编号”).toString();
System.out.println(“下一项:+结果”);
//添加(rs.getString(“原材料编号”);
}while(rs.next());
}
捕获(例外e){
ithosList.equals(null);
System.out.println(“数据库错误:+e”);
}
}
以下是mySQL中的结果:

因此,我希望第一个“结果”是
MAN-500-121200000
,但它显示为
RAW-001485

我看不到代码中的任何地方我正在“跳过”第一条记录,但如果我放弃它,它将跳过下一条记录到
MAN-500-056100000

我是否使用了错误的用户连接?这是我能看到的唯一影响这一点的东西


我以为
user.getConnection()
只会对常规测试数据库执行此操作。

您的代码似乎不正确,预期的循环是:

while(rs.next()) {
    String result = rs.getString("raw_material_number");
    System.out.println("next item: " + result);
}
考虑使用语句正确关闭您的
连接
语句
结果集
,如下所示:

try (Connection conn = user.getConnection();
     Statement st = conn.createStatement();
     ResultSet rs = st.executeQuery("SELECT * FROM raw_material where object_id > 0")) {
    // My code here
}

您的代码似乎不正确,预期的循环是:

while(rs.next()) {
    String result = rs.getString("raw_material_number");
    System.out.println("next item: " + result);
}
考虑使用语句正确关闭您的
连接
语句
结果集
,如下所示:

try (Connection conn = user.getConnection();
     Statement st = conn.createStatement();
     ResultSet rs = st.executeQuery("SELECT * FROM raw_material where object_id > 0")) {
    // My code here
}
像这样试试

while(rs.next()){
  String result = rs.getString("raw_material_number");
  System.out.println("next item: " + result);
}
像这样试试

while(rs.next()){
  String result = rs.getString("raw_material_number");
  System.out.println("next item: " + result);
}
publicstaticvoidfetchithos(ArrayList-ithosList,UserDto-user){
//TODO自动生成的方法存根
int i=1;
//首先获取我们的资料-原材料和文档名称和路径
试一试{
Connection conn=user.getConnection();
语句st=conn.createStatement();
结果集rsCount=st.executeQuery(“从原材料中选择计数(*));
rsCount.first();
long r=(long)rsCount.getObject(i);
对于(i=1;i
这是一种很好的方式,但现在它已经开始工作了,至少在高级开发人员从丧亲之痛中归来之前是这样。请记住,我只经历了3个月的爪哇火洗礼。lol.

公共静态void fetchIthos(ArrayList ithosList,UserDto user){
//TODO自动生成的方法存根
int i=1;
//首先获取我们的资料-原材料和文档名称和路径
试一试{
Connection conn=user.getConnection();
语句st=conn.createStatement();
结果集rsCount=st.executeQuery(“从原材料中选择计数(*));
rsCount.first();
long r=(long)rsCount.getObject(i);
对于(i=1;i

这是一种很好的方式,但现在它已经开始工作了,至少在高级开发人员从丧亲之痛中归来之前是这样。请记住,我只经历了3个月的爪哇火洗礼。lol.

这肯定是对的,尽管它会跳过第一个结果似乎有些奇怪。事实上,我似乎记得如果不推进光标,会收到错误消息,但这可能取决于实现。'while(rs.next()){String result=rs.getString(“raw_material_number”);System.out.println(“next item:+result);}“还是生的-001485@PaulaAnneMcGrath你根本没有得到MAN-500-121200000?这肯定是对的,尽管它会跳过第一个结果似乎有些奇怪。事实上,我似乎记得如果不推进光标,会收到错误消息,但这可能取决于实现。'while(rs.next()){String result=rs.getString(“raw_material_number”);System.out.println(“next item:+result);}“还是生的-001485@PaulaAnneMcGrath你根本得不到MAN-500-121200000?
ithosList.equals(null)什么都不做。如果
ithosList
null
,则该方法调用返回true,否则返回false。我还没有开始编写该片段。我希望在添加到arraylist之前得到正确的结果两次,是否可以保证结果将以相同的顺序返回?我无法想象为什么它不会以正确的顺序返回。我确实添加了一个“order by object_id asc,结果仍然相同。”什么都不做。如果
ithosList
null
,则该方法调用返回true,否则返回false。我还没有找到