用JDBC SQLPostgreSQL数组类型的更新结果集问题,怎么解决

用JDBC SQLPostgreSQL数组类型的更新结果集问题,怎么解决,第1张

假设mysql中test数据库中有个表式score,有数据,我只取第一列的数据出来:

public void mysqlConnection(){

try {

ClassforName("commysqljdbcDriver")newInstance();//数据库驱动

String url = "jdbc:mysql://localhost:3306/test";//数据库链接地址

String user = "root";//用户名

String password = "";//密码

Connection conn = DriverManagergetConnection(url, user, password);//建立connection

Statement stmt = conncreateStatement();

connsetAutoCommit(false);// 更改jdbc事务的默认提交方式

String sql = "select from score";//查询语句

ResultSet rs = stmtexecuteQuery(sql);//得到结果集

conncommit();//事务提交

connsetAutoCommit(true);// 更改jdbc事务的默认提交方式

List<String> list=new ArrayList<String>();//创建取结果的列表,之所以使用列表,不用数组,因为现在还不知道结果有多少,不能确定数组长度,所有先用list接收,然后转为数组

while (rsnext()) {//如果有数据,取第一列添加如list

listadd(rsgetString(1));

}

if(list != null && listsize()>0){//如果list中存入了数据,转化为数组

String[] arr=new String[listsize()];//创建一个和list长度一样的数组

for(int i=0;i<listsize();i++){

arr[i]=listget(i);//数组赋值了。

}

//输出数组

for(int i=0;i<arrlength;i++){

Systemoutprintln(arr[i]);

}

}

} catch (Exception e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}

但是在管理工具下ODBC数据源界面里只能选择64位的PostgreSQL驱动,32位竟然没有。如此一来,一些32位的应用软件就没法利用ODBC链接到数据库了(尝试选取地话,会报告选取的数据源(64位)和应用程序的系统构架(32位)不一致而失败)。

一开始以为在ODBC数据源无法选择32位驱动是和安装驱动的顺序有关,或者32位和64位驱动互相冲突。卸卸装装反复几次,问题依旧。后来查阅psqlodbc项目组的FAQ才找到解决办法:从cmd运行%SystemRoot%\syswow64\odbcad32exe

来配置32位的PostgreSQL ODBC数据源。

odbcad32exe

运行界面和管理工具下ODBC数据源配置界面类似,但是是用来管理32位驱动的。Win7 x64

管理工具下ODBC数据源配置程序(

%SystemRoot%\system32\odbcad32exe

)实际上是64位的驱动管理。

官方的解释为:

using System;

using SystemDataSqlClient;

using SystemData;

public class DB

{

static string Sql="server=;uid=名字;pwd=密码;database=你要连的数据库";

private SqlConnection objSqlConnection = new SqlConnection(Sql);

//以上是加载驱动你要连到的数据库

public int Update(string sql)

{

objSqlConnectionOpen();

SqlCommand objSqlCommand = new SqlCommand(sql,objSqlConnection);

int r=objSqlCommandExecuteNonQuery();

objSqlConnectionClose();

return r; //r如果是=1就是增删改成功!

}

//上面的方法是增删改

public DataSet Select(string sql)

{

DataSet objDataSet = new DataSet();

SqlDataAdapter objSqlDataAdapter = new SqlDataAdapter(sql,objSqlConnection);

objSqlDataAdapterFill(objDataSet);

return objDataSet;

}

//这个方法是查;

}

这是一个连接SQL的类;

你建这样的一个类,在哪个地方要就实例后调他的方法带入一个参数;

参数是SQL增删改查的语句;

如果要在你做的那个程序实现增删改的话就

DB db = new DB();

int i = DBUpdate(增的SQL语句);

// 返回的i是1就是成功了!

===========================

DB db = new DB();

int i = DBUpdate(删的SQL语句);

// 返回的i是1就是成功了!

==========================

DB db = new DB();

int i = DBUpdate(改的SQL语句);

// 返回的i是1就是成功了!

========================如果要查询

DB db = new DB();

DataSet ds = new DataSet();

ds = dbSelect(查的SQL语句);

//查询出的结果就放在ds里面;

请尝试OLEDB或ODBC的方式连接PostgreSQL数据库。

当然,首先需要从PostgreSQL官网获取OLEDB或ODBC的驱动程序,然后才可以使用。

目前用ASP开发的越来越少了,都已经使用ASPNET开发了,就可以直接使用PostgreSQL提供的ADO NET Provider来连接数据库并进行 *** 作。

在水晶报表中的话可以通过oledb连接postgresql,具体的怎么做的话不是很清楚,没怎么用过水晶报表,都是用的finereport,在finereport中可以用jdbc来连接,配置相应的驱动器就可以进行连接了。

1),PostgreSQL是通用型数据库。

PG有着丰富的数据类型(数值、字符、时间、布尔、货币、枚举、网络地址、JSONB等等)和索引类型( B-tree、Hash、GiST、SP-GiST 、GIN 和 BRIN等 )。可以存储和计算大多数场景的业务数据,如 ERP、交易系统、财务系统涉及资金、客户等信息,数据不能丢失且业务逻辑复杂,选择 PostgreSQL 作为数据底层存储,一是可以帮助您在数据一致性前提下提供高可用性,二是可以用简单的编程实现复杂的业务逻辑 。适合各种OLTP和部分OLAP场景。

2),PostgreSQL数据库包含许多第三方插件。

如PostGIS等可以直接在数据库里进行地理位置相关的gis类存储和运算(LBS地理位置相关业务等O2O场景),其他的插件如Pg_stat_statements、uuid-ossp、pg_trgm、btree-gist插件、 pgcrypto加密等插件 。

3),中小型企业快速搭建 数据仓库和数据分析平台(TB级别)

PostgreSQL 提供丰富的数据类型和强大的计算能力,能够帮助您更简单搭建数据库仓库或大数据分析平台,为企业运营加分。

4),冷热分离

针对流水类的大表,PG可以使用分区表,线上保留热数据, 历史 数据存放在分区表里或者OSS等冷数据平台,冷热分离。

5),公有云支持度高如阿里云、腾讯云、华为云等公有云都有对应的RDS-PG产品,开箱即用,并提供技术支持。

OLTP:事务处理是PostgreSQL的本行

OLAP:ANSI SQL兼容,窗口函数,CTE,CUBE等高级分析功能,任意语言写UDF,citus分布式插件

流处理:PipelineDB扩展,Notify-Listen,物化视图,规则系统,灵活的存储过程与函数编写

时序数据:timescaledb时序数据库插件,分区表,BRIN索引

空间数据:PostGIS扩展(杀手锏),内建的几何类型支持,GiST索引。

搜索索引:全文搜索索引足以应对简单场景;丰富的索引类型,支持函数索引,条件索引

NoSQL:JSON,JSONB,XML,HStore原生支持,至NoSQL数据库的外部数据包装器

数据仓库:能平滑迁移至同属Pg生态的GreenPlum,DeepGreen,HAWK等,使用FDW进行ETL

以上就是关于用JDBC SQL / PostgreSQL数组类型的更新结果集问题,怎么解决全部的内容,包括:用JDBC SQL / PostgreSQL数组类型的更新结果集问题,怎么解决、如何在Win7 x64上的配置32位的PostgreSQL ODBC数据源、C#如何连接其他数据库,如MYSQL或者Postgresql等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10080419.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存