java - 在 java 代码中创建 postgresql 表

标签 java postgresql

我有一个连接 postgreSQL 数据库的 java 代码。

现在,我希望当它连接到数据库时,我也将创建数据库表。

但我的问题是,它不会创建数据库,我不知道是什么问题。

这是我的代码:

Statement st = null;
        ResultSet rs = null;
        try{
            Class.forName("org.postgresql.Driver");
            System.out.println("connect");
            } catch (ClassNotFoundException cnfe){
              System.out.println("Could not find the JDBC driver!");
              System.exit(1);
            }
        Connection conn = null;
        try {
            //database location, database user, database password
            conn = DriverManager.getConnection
                           ("jdbc:postgresql:"POS_DB","postgres", "123456");
            st = conn.createStatement();
            String qs = "CREATE TABLE IF NOT EXISTS user(user_id SERIAL NOT NULL PRIMARY KEY,username varchar(225) NOT NULL UNIQUE,password varchar(225),islogged varchar(10))";
            String qs1 = "SELECT * FROM test";
        rs = st.executeQuery(qs);

            System.out.println("connect");
             } catch (SQLException sqle) {
               System.out.println("Could not connect");
               System.exit(1);
             }

我确信我在创建表时的sql语句是正确的。但是当我运行它时,它不会创建表。如果我将字符串替换成select sql,就没有问题。

有人知道我的案子吗?

提前致谢..

最佳答案

您可能想使用 PreparedStatement像这样:

PreparedStatement ps = connection.prepareStatement("CREATE TABLE IF NOT EXISTS user(user_id SERIAL NOT NULL PRIMARY KEY,username varchar(225) NOT NULL UNIQUE,password varchar(225),islogged varchar(10))");
ps.executeUpdate();
ps.close();

对于 DML 和 DDL 语句,您需要executeUpdate

此外,确保你的 DDL 语句是正确的,我不知道 PostgreSQL 的确切“if not exists”语法

关于java - 在 java 代码中创建 postgresql 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11626870/

相关文章:

java - Java中100毫秒的音频帧。

sql - 返回任意类型的 PostgreSQL 函数

sql - postgresql - 多列的前 5 个值,以及值的总和

Java Web 应用程序 - 文件读取

java - 如何匹配String中的特定字符n-m次

java - 为什么对静态变量的非静态引用是可编译的?

sql - 在 FROM 子句中创建一个大的虚拟表

ruby-on-rails - 按 utc 日期的 rails 组

java - 为@ElementCollection Map 做更新而不是删除/插入

java - 将 POJO 转换为 Map