Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java代码创建postgresql表_Java_Postgresql - Fatal编程技术网

用java代码创建postgresql表

用java代码创建postgresql表,java,postgresql,Java,Postgresql,我有一个与postgreSQL数据库连接的java代码 现在,我希望当它连接到数据库时,我还将创建数据库表 但我的问题是,它不会创建数据库,我不知道问题出在哪里 这是我的密码: Statement st = null; ResultSet rs = null; try{ Class.forName("org.postgresql.Driver"); System.out.println("connect");

我有一个与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,则没有问题

有人知道我的案子吗


提前感谢。

您可能希望使用类似的:

您需要DML和DDL语句的executeUpdate

另外,请确保您的DDL语句是正确的,我不知道PostgreSQL的确切“如果不存在”语法这一行:

conn = DriverManager.getConnection
                       ("jdbc:postgresql:"POS_DB","postgres", "123456");
这是无效的

在POS_DB前面有一个不应该在这里的


也请参见一些示例。请检查。

postgresql 10-“user”是一个关键字,因此对于表来说不是一个好的选择。您将需要一个不是保留字的名称

conn = DriverManager.getConnection
                       ("jdbc:postgresql:"POS_DB","postgres", "123456");