我有一个连接 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/