首先说一个我在创建数据库的时候遇到的一个问题:PostgreSQL在创建数据表的时候,我想创建一个User表,但是PLSQL命令提示符提示有错,我后来改成userinfo就好了,我上网查了查要是给User加上引号也可以,即 CREATE TABLE USER (); 下面转入正题给出一个JDBC
首先说一个我在创建数据库的时候遇到的一个问题:PostgreSQL在创建数据表的时候,我想创建一个User表,但是PLSQL命令提示符提示有错,我后来改成userinfo就好了,我上网查了查要是给User加上引号也可以,即 CREATE TABLE "USER" ();
下面转入正题给出一个JDBC连接PostgreSQL的示例:
package cn.tzy.database;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
public class DBConnection {
public static void main(String[] args) {
String user = "postgres";
String password = "19901231";
//格式为:jdbc:Database Type://IP Address:Port/Database Name
//比如MySQL为:jdbc:mysql://localhost/newDB
String url = "jdbc:postgresql://localhost:5432/geopw";
String driver = "org.postgresql.Driver";
String tableName = "userinfo";
String sqlstr = "";
Connection con = null;
PreparedStatement stmt = null;
try {
Class.forName(driver);
con = DriverManager.getConnection(url, user, password);
/*
//这里是插入数据的代码
sqlstr = "INSERT INTO " + tableName + " VALUES(?, ?, ?, ?, ?)";
stmt = con.prepareStatement(sqlstr);
UUID id = UUID.randomUUID();
stmt.setObject(1, id);
stmt.setString(2, "TheOneGIS");
stmt.setString(3, "theonegis@sina.cn");
stmt.setString(4, "123456");
stmt.setString(5, "Wuhan University");
stmt.executeUpdate();
*/
sqlstr ="SELECT * FROM " + tableName;
stmt = con.prepareStatement(sqlstr);
ResultSet results = stmt.executeQuery();
ResultSetMetaData metaData = results.getMetaData();
int counts = metaData.getColumnCount();
for (int i = 0; i 下面主要说一下自己遇到的问题:
问题1:在写数据库连接字符串的时候易出错
本来是
jdbc:postgresql://localhost:5432/newDB我少写了一个冒号:
jdbc:postgresql//localhost:5432/newDB导致数据库连接失败。
问题2:我在数据库设计的时候想让表的id类型为UUID,作为行的唯一标示。结果我不知道Java中哪个类型对应中PostgreSQL中的UUID类型。
解决方法如下:
UUID id = UUID.randomUUID(); stmt.setObject(1, id);设置成Object类型就好了。
问题3:使用PreparedStatement时使用了有参executeQuery()方法,报错后我发现executeQuery()方法只能用于Statement类,虽然PreparedStatement类是她的子类。PreparedStatement在初始化的时候就给定了执行的SQL语句,然后调用无参的executeQuery()方法。
查看更多关于JDBC连接PostgreSQL数据库的若干问题的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did95665