所以我正在尝试使用以下代码创建此表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
这绝对可以正常工作,因为它是从另一张桌子上复制的。那为什么不起作用?
有什么建议吗?
感谢。
答案 0 :(得分: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();
}
}
此代码在我的系统中完美运行并创建了表。可以请再次检查。
答案 1 :(得分:0)
您的查询看起来很好。我认为您必须使用psCreateTable.executeUpdate();
而不是psCreateTable.execute();
。试试这个,让我知道。
另外,@ all http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html Bool和tinyint(1)是同义词。
答案 2 :(得分: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);
}
谢谢