SQL 表没有行

Posted

技术标签:

【中文标题】SQL 表没有行【英文标题】:SQL table has no rows 【发布时间】:2011-12-10 01:32:46 【问题描述】:

下面的代码编译/运行没有错误。它创建了具有表TEST 但表没有行的数据库。我究竟做错了什么?我可能弄乱了准备好的声明,但不知道在哪里。请帮忙,谢谢。

public class H2Test 
    public static void main (String[] args) throws ClassNotFoundException, Exception 
        Class.forName("org.h2.Driver");
        Connection conn = null;
        String path = "E:\\Dropbox\\Personal\\Development\\BlueJ examples\\sql_test\\";
        String dbName = "h2db";
        String s2 = "s2";
        String s3 = "s3";
        try 
            conn = DriverManager.getConnection("jdbc:h2:" + path + dbName, "sa", "");
            conn.setAutoCommit(false);
            Statement statement = conn.createStatement();
            statement.setQueryTimeout(30);
            statement.executeUpdate("DROP TABLE IF EXISTS TEST;");
            statement.executeUpdate("CREATE TABLE TEST (id IDENTITY PRIMARY KEY, name VARCHAR(255), job VARCHAR(255));");
            PreparedStatement prep = conn.prepareStatement ( "insert into TEST values (?,?,?);" );
            for (int i = 1; i>25; i++ )   
                prep.setInt(1, i);
                prep.setString(2, s2);
                prep.setString(3, s3);
                prep.executeUpdate();
                conn.commit();
                conn.setAutoCommit(true);
            
        
        catch(SQLException e) 
            System.err.println(e.getMessage());
        
        finally 
            try 
                if(conn != null)
                    conn.close();
            
            catch(SQLException e) 
                System.err.println(e);
            
        
    

【问题讨论】:

【参考方案1】:
// Wrong
for (int i = 1; i>25; i++ )   
   ...


// Better
for (int i = 1; i <= 25; i++ )   
   ...

【讨论】:

以上是关于SQL 表没有行的主要内容,如果未能解决你的问题,请参考以下文章

没有 pl/sql 的“前导行”的 SQL 分组表

如果 SQL 表包含行,则插入不同的内容

请教 :SQL 表有没有最大行数的限制

SQL连接(join)

SQL Server - 插入表太慢

sql所有连接解释