我正在尝试通过java在mysql中创建一个表。顺便说一下,我正在使用腻子。这是我到目前为止的一些代码,但它不起作用。
rs=s.executeQuery("CREATE TABLE test(id CHAR(2),name VARCHAR(3),PRIMARY KEY(id)); ");
while(rs.next())
{
System.out.println(rs.getString(1));
}
catch (SQLException ex)
{
System.out.println("SQLException:"+ ex.getMessage());
}
答案 0 :(得分:1)
executeQuery()
适用于返回SELECT
的quires(通常为ResultSet
)。
使用DML
(和DDL
)次查询,您需要使用executeUpdate()
方法。
有关更多信息和示例,请使用Setting Up Tables教程。
答案 1 :(得分:0)
在此处查看此帖:Data Manipulation Statements
如果您希望实际修改数据库,则应该使用executeUpdate()。
答案 2 :(得分:0)
你的查询还可以!但是你没有得到结果集! CREATE TABLE不会提供行或列。 你被欺骗了文件:
返回: 包含给定查询生成的数据的ResultSet对象;永远不会
然而
抛出: SQLException - 如果发生数据库访问错误,...给定的SQL语句生成除单个ResultSet对象以外的任何内容,...
在我看来,“执行”的召唤将是正确的方式。
答案 3 :(得分:0)
我认为通过Java生成数据库模式并不是一个好主意。使用数据库附带的实用工具来创建架构。这样,您或任何人(例如DBA)可以创建表,视图,索引,约束,授予权限等,而无需了解Java。您甚至可以让数据库实用程序生成一个SQL脚本,您可以运行该脚本从头开始重新生成模式。最后一点:我相信你最好调用你的主键test_id并使其类型为numberic,long或int。这样,当你将它作为另一个表中的外键引用时,你会立即知道它引用回测试表。