-2

所以我正在尝试使用以下代码创建这个 Table usr:

psCreateTable = con.prepareStatement("CREATE TABLE usr (pk_ID Integer NOT NULL, username VARCHAR(20) NOT NULL, lastname VARCHAR(20) NOT NULL, firstname VARCHAR(20) NOT NULL, password VARCHAR(20) NOT NULL, admin BOOL DEFAULT FALSE, PRIMARY KEY(pk_ID))");
psCreateTable.execute();

当我执行代码时,我得到了这个异常:

java.sql.SQLSyntaxErrorException: TYPE 'BOOL' does not exist

这绝对应该可以正常工作,因为它是从另一个表复制粘贴的。那么为什么不工作呢?

有什么建议么?

谢谢。

4

3 回答 3

1
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.print.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.*;

public class Test {
public static void main(String args[]) throws SQLException {
String url = "jdbc:mysql://localhost:3306/rms";
String driver = "com.mysql.jdbc.Driver";
Connection conn = null;
try {
    conn = DriverManager.getConnection(url,"username","password");
} catch (SQLException e2) {
    e2.printStackTrace();
}

PreparedStatement pstmt = conn.prepareStatement("CREATE TABLE usr (pk_ID Integer NOT NULL, username VARCHAR(20) NOT NULL, lastname VARCHAR(20) NOT NULL, firstname VARCHAR(20) NOT NULL, password VARCHAR(20) NOT NULL, admin BOOL DEFAULT FALSE, PRIMARY KEY(pk_ID))");

        pstmt.executeUpdate();

        conn.close();
      }
 }

这段代码在我的系统中运行良好并创建了表。请您再检查一次。

于 2012-10-30T05:41:38.470 回答
0

您的查询看起来一切正常。我认为你必须使用psCreateTable.executeUpdate();而不是psCreateTable.execute();. 试试这个,让我知道。

此外,@all http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html Bool 和 tinyint(1) 是同义词。

于 2012-10-30T04:57:29.553 回答
0

嗨,我编辑了试试这个代码,,

try
            {
            Statement stmt;
            stmt=con.createStatement();
            stmt.executeUpdate("CREATE TABLE usr (pk_ID Integer NOT NULL, username VARCHAR(20) NOT NULL, lastname VARCHAR(20) NOT NULL, firstname VARCHAR(20) NOT NULL, password VARCHAR(20) NOT NULL, admin BOOL DEFAULT FALSE, PRIMARY KEY(pk_ID))");
            }catch(Exception ex)
            {
                System.out.println(""+ex);
            }

谢谢

于 2012-10-30T05:00:26.260 回答