将近花了两天
实现
,
实现
了空间化文献的批量上传。原来文献是以文件的形式存放在网站目录下的文件夹里的,后来改为存放到
PostgreSQL
的Bytea字段中,该字段相当于ORACLE的BLOB或CLOB字段,是以二级制形式存放数据,最大存放2G数据。
自己对PHP编程不熟,是在查阅大量参考资料后,依葫芦画瓢才搞定的Postge
sql
数据库
Bytea字段的读、写操作。现在与大家分享一下:
Java
通过JDBC驱动可以调用
postgresql
数据库
中的
存储
过程。通过以下步骤可以
实现
:
1. 在
Java
程序中加载
postgresql
的JDBC驱动。
2. 创建一个
数据库
连接对象连接到
postgresql
数据库
。
3. 创建一个CallableStatement对象来调用
存储
过程。
4. 通过调用CallableStatement对象的setXXX()方法为
存储
过程传递参数。
5. 调用CallableStatement对象的execute()方法执行
存储
过程。
6. 通过调用CallableStatement对象的getXXX()方法获取
存储
过程返回的结果。
7. 最后,关闭
数据库
连接对象和CallableStatement对象。
例如,调用一个名为my_function的
存储
过程,该过程有两个输入参数和一个输出参数,可以使用以下
Java
代码:
import
java
.
sql
.*;
public class CallFuncDemo {
public static void main(String[] args) throws
SQL
Exception {
Connection conn = null;
CallableStatement stmt = null;
try {
conn = DriverManager.getConnection("jdbc:
postgresql
://localhost:5432/mydb", "username", "password");
stmt = conn.prepareCall("{? = call my_function(?, ?)}");
stmt.registerOutParameter(1, Types.INTEGER);
stmt.setInt(2, 100);
stmt.setInt(3, 200);
stmt.execute();
int result = stmt.getInt(1);
System.out.println("The result is " + result);
} catch(
SQL
Exception e) {
e.printStackTrace();
} finally {
if(stmt != null) {
stmt.close();
if(conn != null) {
conn.close();
在这个例子中,我们创建了一个
数据库
连接对象conn,并使用prepareCall()方法创建一个CallableStatement对象stmt来调用
存储
过程。接着,我们使用registerOutParameter()方法为输出参数注册类型,并使用setXXX()方法为输入参数设置值。调用execute()方法执行
存储
过程。最后,我们使用getInt()方法获取输出参数的值。注意,在调用完毕后需要关闭
数据库
连接对象和CallableStatement对象。
vue路由解决Uncaught (in promise) Error: Avoided redundant navigation to current location: “/home/news“.
17350