`
isiqi
  • 浏览: 16466967 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Java中的数据集(zz)

阅读更多

在.NET中引入了一个Java中没有的、并且对于数据库查询来说非常实用的一个概念——数据集。
简单的说,数据集就是利用一次连接数据库的查询时间将查询结果保留下来,再根据所需对数据进行操作。由于此时的数据操作(这里仅限于查询及其批量修改)是在驾驭在数据库外面的基础上,也就是说此时已经完全脱离了数据库。所以对于程序来说无疑在速度上大大了节省了时间,从而提高了程序执行的效率。
那么在Java中是否可以使用同样的方法呢?我们的回答是肯定的。只不过在VS.NET中这些全都是有IDE自动生成的,而我们这里则需要手工写。其实实现这个功能很简单,但是如果要做到真正的提高效率那就拥有一定的难度系数了。
下面,简单的说一下在Java中是如何实现“数据集”的:
.NET中生成的的数据集是以XML来表示的,在Java里同样可以,调用相应的XML的API就可以了。为了简便操作,我们这里仅仅用数据集合。

首先看一下这些代码:
import java.sql.*;
public class SqlTest
{
Connection con;
PreparedStatement ps;
public SqlTest()
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Northwind","sa","");
}
public void search()
{
ps=con.prepareStatement("select * from Products");
ResultSet result=ps.executeQuery();
while(result.next())
{
String t1=result.getString(1);
String t2=result.getString(2);
……………………
……………………
String tN=result.getString(N);
}
}
}
此时,我们用的是最普通也是最本的方法将数据一点一点地从数据库中取出来,如果这个程序没有“跨越”传输数据的话,这个勉强能说得过去。但是在实际的开发中像这种本地调用的毕竟是少数,所以就出现了所谓的“跨越”调用(即在不同的计算机之间进行的数据传输)。
首先这里要注意一点,如果在这里加入finally然后在里面执行关闭书数据库操作的时候,回报错!因为这里会因为数据没有查询完毕而出现异常。


由于上述情况,就限制住了一点:“在这种情况下,始终保持着数据库的连接状态。”这对于数据库资源和网络资源非常宝贵的环境来说显然是不现实的。所以便出现了我们下面的“数据集”:
import java.sql.*;
import java.util.*;
public class SqlTest
{
Connection con;
PreparedStatement ps;
public SqlTest()
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Northwind","sa","");
}
public Vector search()
{
ps=con.prepareStatement("select * from Products");
ps.setString(1,key);
ResultSet result=ps.executeQuery();
Vector resV=new Vector();
while(result.next())
{
CustObj obj=new CustObj(result.getInt(1),
result.getInt(2),
...............
...............
result.getInt(N));
resV.add(obj);
}
return resV;
}
}//这里的CustObj仅仅是一个接受类
和上面的不同,此时完全可以用finally语句附带关闭数据库的操作。因为此时数据已经完全保存到了Vector里面。

无论是在面向对象的设计中,还是在数据库跨越传输中。第二种方法都是最佳的首选。如果在配合Java与XML的API,实现.NET那样的数据集本地化是轻而易举的事。
还是那句话,如果真得能做到“真正的提高效率”,很难。毕竟,VS.NET中的本地化数据库并不是像我说得这样简单。

首先看一下这些代码:
import java.sql.*;
public class SqlTest
{
Connection con;
PreparedStatement ps;
public SqlTest()
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Northwind","sa","");
}
public void search()
{
ps=con.prepareStatement("select * from Products");
ResultSet result=ps.executeQuery();
while(result.next())
{
String t1=result.getString(1);
String t2=result.getString(2);
……………………
……………………
String tN=result.getString(N);
}
}
}
此时,我们用的是最普通也是最本的方法将数据一点一点地从数据库中取出来,如果这个程序没有“跨越”传输数据的话,这个勉强能说得过去。但是在实际的开发中像这种本地调用的毕竟是少数,所以就出现了所谓的“跨越”调用(即在不同的计算机之间进行的数据传输)。
首先这里要注意一点,如果在这里加入finally然后在里面执行关闭书数据库操作的时候,回报错!因为这里会因为数据没有查询完毕而出现异常。


由于上述情况,就限制住了一点:“在这种情况下,始终保持着数据库的连接状态。”这对于数据库资源和网络资源非常宝贵的环境来说显然是不现实的。所以便出现了我们下面的“数据集”:
import java.sql.*;
import java.util.*;
public class SqlTest
{
Connection con;
PreparedStatement ps;
public SqlTest()
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Northwind","sa","");
}
public Vector search()
{
ps=con.prepareStatement("select * from Products");
ps.setString(1,key);
ResultSet result=ps.executeQuery();
Vector resV=new Vector();
while(result.next())
{
CustObj obj=new CustObj(result.getInt(1),
result.getInt(2),
...............
...............
result.getInt(N));
resV.add(obj);
}
return resV;
}
}//这里的CustObj仅仅是一个接受类
和上面的不同,此时完全可以用finally语句附带关闭数据库的操作。因为此时数据已经完全保存到了Vector里面。

无论是在面向对象的设计中,还是在数据库跨越传输中。第二种方法都是最佳的首选。如果在配合Java与XML的API,实现.NET那样的数据集本地化是轻而易举的事。
还是那句话,如果真得能做到“真正的提高效率”,很难。毕竟,VS.NET中的本地化数据库并不是像我说得这样简单。

首先看一下这些代码:
import java.sql.*;
public class SqlTest
{
Connection con;
PreparedStatement ps;
public SqlTest()
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Northwind","sa","");
}
public void search()
{
ps=con.prepareStatement("select * from Products");
ResultSet result=ps.executeQuery();
while(result.next())
{
String t1=result.getString(1);
String t2=result.getString(2);
……………………
……………………
String tN=result.getString(N);
}
}
}
此时,我们用的是最普通也是最本的方法将数据一点一点地从数据库中取出来,如果这个程序没有“跨越”传输数据的话,这个勉强能说得过去。但是在实际的开发中像这种本地调用的毕竟是少数,所以就出现了所谓的“跨越”调用(即在不同的计算机之间进行的数据传输)。
首先这里要注意一点,如果在这里加入finally然后在里面执行关闭书数据库操作的时候,回报错!因为这里会因为数据没有查询完毕而出现异常。


由于上述情况,就限制住了一点:“在这种情况下,始终保持着数据库的连接状态。”这对于数据库资源和网络资源非常宝贵的环境来说显然是不现实的。所以便出现了我们下面的“数据集”:
import java.sql.*;
import java.util.*;
public class SqlTest
{
Connection con;
PreparedStatement ps;
public SqlTest()
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Northwind","sa","");
}
public Vector search()
{
ps=con.prepareStatement("select * from Products");
ps.setString(1,key);
ResultSet result=ps.executeQuery();
Vector resV=new Vector();
while(result.next())
{
CustObj obj=new CustObj(result.getInt(1),
result.getInt(2),
...............
...............
result.getInt(N));
resV.add(obj);
}
return resV;
}
}//这里的CustObj仅仅是一个接受类
和上面的不同,此时完全可以用finally语句附带关闭数据库的操作。因为此时数据已经完全保存到了Vector里面。

无论是在面向对象的设计中,还是在数据库跨越传输中。第二种方法都是最佳的首选。如果在配合Java与XML的API,实现.NET那样的数据集本地化是轻而易举的事。
还是那句话,如果真得能做到“真正的提高效率”,很难。毕竟,VS.NET中的本地化数据库并不是像我说得这样简单。

首先看一下这些代码:
import java.sql.*;
public class SqlTest
{
Connection con;
PreparedStatement ps;
public SqlTest()
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Northwind","sa","");
}
public void search()
{
ps=con.prepareStatement("select * from Products");
ResultSet result=ps.executeQuery();
while(result.next())
{
String t1=result.getString(1);
String t2=result.getString(2);
……………………
……………………
String tN=result.getString(N);
}
}
}
此时,我们用的是最普通也是最本的方法将数据一点一点地从数据库中取出来,如果这个程序没有“跨越”传输数据的话,这个勉强能说得过去。但是在实际的开发中像这种本地调用的毕竟是少数,所以就出现了所谓的“跨越”调用(即在不同的计算机之间进行的数据传输)。
首先这里要注意一点,如果在这里加入finally然后在里面执行关闭书数据库操作的时候,回报错!因为这里会因为数据没有查询完毕而出现异常。


由于上述情况,就限制住了一点:“在这种情况下,始终保持着数据库的连接状态。”这对于数据库资源和网络资源非常宝贵的环境来说显然是不现实的。所以便出现了我们下面的“数据集”:
import java.sql.*;
import java.util.*;
public class SqlTest
{
Connection con;
PreparedStatement ps;
public SqlTest()
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Northwind","sa","");
}
public Vector search()
{
ps=con.prepareStatement("select * from Products");
ps.setString(1,key);
ResultSet result=ps.executeQuery();
Vector resV=new Vector();
while(result.next())
{
CustObj obj=new CustObj(result.getInt(1),
result.getInt(2),
...............
...............
result.getInt(N));
resV.add(obj);
}
return resV;
}
}//这里的CustObj仅仅是一个接受类
和上面的不同,此时完全可以用finally语句附带关闭数据库的操作。因为此时数据已经完全保存到了Vector里面。

无论是在面向对象的设计中,还是在数据库跨越传输中。第二种方法都是最佳的首选。如果在配合Java与XML的API,实现.NET那样的数据集本地化是轻而易举的事。
还是那句话,如果真得能做到“真正的提高效率”,很难。毕竟,VS.NET中的本地化数据库并不是像我说得这样简单。

分享到:
评论

相关推荐

    java实现logistic回归算法

    - 数据集划分,通常使用交叉验证来评估模型的泛化能力。 - 调参技巧,如网格搜索、随机搜索等,找到最优超参数组合。 7. **扩展与进阶** - 多分类Logistic回归:如softmax回归,适用于多于两个类别的问题。 - ...

    java实现朴素贝叶斯算法

    朴素贝叶斯算法是一种基于概率的分类方法,它在机器学习领域被广泛应用。该算法假设特征之间相互独立...在实际应用中,还需要考虑如何处理异常值、优化模型参数以及应对不平衡数据集等问题,以提升模型的性能和实用性。

    利用 First Fit 算法解决物流3D bin packing问题 Java实现

    此外,为了测试算法的有效性,可以使用随机生成的数据集或真实物流场景的数据。 总结来说,First Fit算法通过简单地将物品放入第一个足够大的箱子,为3D物流装箱问题提供了一个实用的解决方案。Java作为面向对象的...

    java实现的决策树算法(ID3)

    在Java实现中,`ID3决策树`文件很可能包含了类定义、数据结构、方法实现等代码,包括读取数据集、处理数据、构建决策树、进行预测等功能。测试数据集用于验证算法的准确性和性能,通常包括已知结果的样本,以便比较...

    这是java实现机器学习算法中的k近邻算法

    总结起来,这个Java实现的K近邻算法是一个基础但重要的机器学习工具,它能用于分类问题,并通过自定义距离度量和调整K值来适应不同的数据集和应用场景。在处理小规模数据集时,KNN算法效果良好,但在大规模数据集上...

    字符集编码的识别(zz)

    标题中的“字符集编码的识别”是一个关于计算机科学和编程的重要主题,主要涉及文本数据在计算机内部的表示方式。字符集编码是将字符与二进制数字之间建立映射关系的一种方法,使得计算机能够理解和处理各种语言的...

    tools_zz.rar

    总结来说,"tools_zz.rar"可能包含了一个实现上述功能的工具或代码集,帮助用户在魔兽世界战歌峡谷中进行自动挂机。它利用了屏幕捕获、鼠标坐标获取、颜色识别以及可能的内存读取等技术。在实际应用中,这样的工具...

    db2 数据库驱动jar包 db2java.jar,db2jcc.jar,db2_license_cu.jar

    在Java编程环境中,连接和操作DB2数据库通常需要特定的驱动程序,这些驱动程序以Java类库(JAR)的形式存在。标题和描述中提到的三个JAR文件——db2java.jar、db2jcc.jar和db2_license_cu.jar,正是用于建立Java应用...

    Java课程设计 介绍及代码

    Java课程设计是学习Java编程语言过程中的一项重要实践活动,旨在通过实际项目开发,加深对Java语法、面向对象编程、数据结构、算法以及软件工程方法的理解。在这个"Java课程设计 介绍及代码"的资源中,我们可以期待...

    java虚拟机详解.docx

    Java虚拟机是Java技术的重要组成部分,它通过定义一套标准的指令集和内存模型,确保了Java程序能够在不同的操作系统和硬件平台上运行。通过对JVM的深入理解,开发者可以更好地优化Java应用程序,提升其性能和可靠性...

    java调用Oracle存储过程

    在Java编程中,调用Oracle数据库的存储过程是常见的任务,尤其在处理复杂业务逻辑或数据操作时。本文将深入探讨如何使用Java与Oracle数据库进行交互,并调用存储过程。 首先,确保你已经在你的开发环境中安装了...

    JSF架构图zz

    根据给定的内容,“JSF架构图zz”主要涉及到了JSF框架的几个关键组成部分,下面将详细介绍这些部分及其在JSF框架中的作用。 ##### 1. **表示层应用程序逻辑** 表示层是JSF框架的核心,负责展示数据并处理用户的...

    疯狂Java面试题大全 Android版

    根据给定的信息,“疯狂Java面试题大全 Android版”是一份详尽且全面的Android面试题集,涵盖了Java的核心技术及Android开发的相关知识点。下面将基于提供的部分内容深入解析几个关键的知识点: ### 1. 面向对象的...

    JDBC 连接mysql的一种方法,使用JAVA语言

    Java Database Connectivity(JDBC)是Java编程语言中用于与各种类型数据库交互的一组接口和类。JDBC提供了一种标准的API,使得开发者能够用Java编写数据库应用程序,无论底层的数据库管理系统是什么。在这个主题中...

    中航信Eterm协议解析

    在提供的文件中,“TravelSky.signalling”可能包含了中航信(原名TravelSky,中国领先的航空信息技术服务商)与Eterm客户端交互的信号或指令集。这些信号可能涉及到连接建立、请求发送、响应接收以及异常处理等多个...

    Android高级应用源码-Android 4.0风格中文滚动输入.zip

    3. 字符集处理:处理中文字符需要了解Unicode编码,以及如何在Java中正确地存储和处理中文字符串。这可能涉及到`CharSequence`、`String`和`StringBuilder`类的使用。 4. 数据源:字符列表需要一个数据源,可能是...

    asctii2utf8.zip

    在Java或者其他支持properties文件的语言环境中,这类文件通常用于存储程序的配置信息,以键值对的形式存在,方便读取和修改。 总的来说,这个压缩包提供了一种便捷的方法,帮助用户将ASCII编码的文本文件转换为UTF...

    安卓自定义控件相关-Android4.0风格中文滚动输入.zip

    4. **数据绑定**:控件可能需要绑定一个数据集,如中文字符数组,以供用户滚动选择。这可能涉及到适配器(Adapter)和数据模型(如`ArrayList`)的使用。 5. **事件监听**:添加事件监听器,例如`OnClickListener`...

    模型算法模型解析含代码综合评价方法

    监督学习是一种常见的机器学习方法,它通过已知的数据集(包含输入和对应的输出)来训练模型,使得模型能够对未来未知数据做出准确预测。典型的监督学习算法包括线性回归、逻辑回归、支持向量机(SVM)等。 #### 2. ...

    MB备忘----2

    【压缩包子文件的文件名称列表】中的"zzf"和"zz"没有明确的上下文,它们可能代表文件名或目录名,通常在IT环境中,这样的命名可能代表特定的代码模块、数据集或者配置文件。如果这些文件是源代码的一部分,我们可能...

Global site tag (gtag.js) - Google Analytics