JDBC连接PostgreSQL数据库的若干问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JDBC连接PostgreSQL数据库的若干问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2968字,纯文字阅读大概需要5分钟。
内容图文
![JDBC连接PostgreSQL数据库的若干问题](/upload/InfoBanner/zyjiaocheng/530/ba3e1ef5e7974e4c876c605f750e9858.jpg)
首先说一个我在创建数据库的时候遇到的一个问题: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 < counts; i++) { System.out.print(metaData.getColumnName(i + 1)); System.out.print("\t"); } System.out.println(); while (results.next()) { for (int i = 0; i < counts; i++) { System.out.print(results.getString(i + 1)); System.out.print("\t"); } System.out.println(); } results.close(); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } finally { try { if (stmt != null) { stmt.close(); } if (con != null) { con.close(); } } catch (SQLException e) { e.printStackTrace(); } } } }
下面主要说一下自己遇到的问题:
问题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数据库的若干问题全部内容,希望文章能够帮你解决JDBC连接PostgreSQL数据库的若干问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。