小编Pau*_*sen的帖子

ResultSet是将所有数据加载到内存中还是仅在请求时加载?

我有一个.jsp页面,我有一个显示Oracle数据库记录的GUI表.该表允许典型的分页行为,例如"FIRST","NEXT","PREVIOUS"和"LAST".记录是从执行SQL语句返回的Java ResultSet对象中获取的.

这个ResultSet可能非常大,所以我的问题是:

如果我有一个包含一百万条记录的ResultSet但我的表只显示ResultSet中前十条记录中的数据,那么只有当我开始请求记录数据时才会获取数据,或者一旦ResultSet将所有数据完全加载到内存中从执行SQL语句返回?

java database jdbc

34
推荐指数
2
解决办法
3万
查看次数

rs.last()为仅向前结果集提供无效操作:last

我试图通过以下方式获得结果集的行数:

rs.last();
int row_count = rs.getRow();
Run Code Online (Sandbox Code Playgroud)

但我得到一个Invalid operation for forward only resultset : last错误.结果集从Oracle 10g数据库获取其数据.

这是我如何设置我的连接:

    Class.forName("oracle.jdbc.driver.OracleDriver");
    String connectionString = "jdbc:oracle:thin:@" + oracle_ip_address + ":" + oracle_db_port + ":" + oracle_db_sid;
    Connection conn = DriverManager.getConnection(connectionString, oracle_db_username, oracle_db_password);
Run Code Online (Sandbox Code Playgroud)

java oracle jdbc resultset

17
推荐指数
2
解决办法
4万
查看次数

Matlab如何填充箭头箭头

我正在制作一个箭袋情节:

[x,y] = meshgrid(0:0.2:2,0:0.2:2);
u = cos(x).*y;
v = sin(x).*y;
figure
quiver(x,y,u,v)
Run Code Online (Sandbox Code Playgroud)

我希望箭头被填满(即 在此输入图像描述 并不是 在此输入图像描述)

从文档中,使用它应该非常简单

quiver(...,LineSpec,'filled')
Run Code Online (Sandbox Code Playgroud)

但是,我仍然无法弄清楚正确的语法 - 这些不起作用:

quiver(x,y,u,v,'LineWidth','filled');
quiver(x,y,u,v,'LineWidth',1,'filled');
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!


编辑:使用行说明符执行以下操作:

quiver(x,y,u,v) %Original
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

quiver(x,y,u,v,'-sk','filled') %With line specifiers
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

matlab plot

7
推荐指数
1
解决办法
7387
查看次数

如何使用MATLAB和JDBC加速表检索?

我正在使用MATLAB调用的JDBC访问PostGreSQL 8.4数据库.我感兴趣的表基本上由不同数据类型的各列组成.他们通过他们的时间戳选择.

由于我想检索大量数据,我正在寻找一种比现在更快的方式来提出请求.


我现在正在做的是:首先我建立一个与数据库的连接并调用它DBConn.下一步是准备一个Select语句并执行它:

QUERYSTRING = ['SELECT * FROM ' TABLENAME '...
WHERE ts BETWEEN ''' TIMESTART ''' AND ''' TIMEEND ''''];

QUERY = DBConn.prepareStatement(QUERYSTRING);
RESULTSET = QUERY.executeQuery();
Run Code Online (Sandbox Code Playgroud)

然后我将columntypes存储在变量COLTYPE中(1表示FLOAT,-1表示BOOLEAN,0表示其余部分 - 几乎所有列都包含FLOAT).下一步是逐列处理每一行,并通过相应的方法检索数据.FNAMES包含表的字段名.

m=0; % Variable containing rownumber

while RESULTSET.next()
  m = m+1;

  for n = 1:length(FNAMES)

    if COLTYPE(n)==1 % Columntype is a FLOAT
      DATA{1}.(FNAMES{n})(m,1) = RESULTSET.getDouble(n);
    elseif COLTYPE(n)==-1 % Columntype is a BOOLEAN
      DATA{1}.(FNAMES{n})(m,1) = RESULTSET.getBoolean(n);
    else
      DATA{1}.(FNAMES{n}){m,1} = char(RESULTSET.getString(n));
    end …
Run Code Online (Sandbox Code Playgroud)

sql postgresql matlab jdbc resultset

5
推荐指数
1
解决办法
3111
查看次数

get(0,'screensize')给出结果[0 0 1 1]而不是实际像素

在MATLAB会话期间,get(0,'screensize')首先给出正确的分辨率.稍后,答案将成为现实[0 0 1 1].这种行为只会在我重新启动matlab时停止,然后再次返回正确的值.

当我运行程序的特定部分时,总会发生此错误.它似乎发生在这个特定的代码行之后:

 set(0,'PointerLocation',[.4*GUI.scrsz(3),.5*GUI.scrsz(4)],'units','normalized');
Run Code Online (Sandbox Code Playgroud)

即使我设法隔离错误,我也无法弄清楚这种行为的原因.我在Windows 7 64bit上使用MATLAB R2010b.

请注意,我不是MATLAB的高级用户,所以如果我忽略了一些明显的东西,请原谅我.请提前感谢您的帮助.

matlab properties matlab-figure

1
推荐指数
1
解决办法
1083
查看次数

标签 统计

jdbc ×3

matlab ×3

java ×2

resultset ×2

database ×1

matlab-figure ×1

oracle ×1

plot ×1

postgresql ×1

properties ×1

sql ×1