补充一点
java开发包是:j2sdk1.4.1
数据库是:Oracle8i
解决方案 »
- 怎样用花生壳解析到本机服务器?
- Jlabel 类!
- 这样的小问题很简单!!我就是看不明白!帮个忙!
- 菜鸟问题!!谁能说说什么时候用接口什么时候该 用抽象类????
- 怎么才能知道一个程序会用到哪些Permission?
- 如何在applet的窗体或组件上显示图片
- java中如何实现类似vb中的chr()函数的功能?
- 请问java中有没有一个类似于messagebox或alert的API?
- 使用iText组件不能在表格中显示中文?急急急!
- 围绕java的内容太多啦,我刚学完语言,接下来改学什么啊???
- JDK安装后如何配置?
- 我是一个会C++、MFC、VB、VF还了解C#语法的程序员,我想学JAVA请进来给点建议,并回答我一些问题,谢谢!
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");
// rs will be scrollable, will not show changes made by others,
// and will be updatableResultSet在执行update操作时肯定会修改数据库的内容!
在B\S中,连接用完就的关闭,把ResultSet 写到某数据类型中,你返回Vector或Arrilist,等数据类型都行的。
因为我是在写一个权限管理模块的数据检索的接口函数:
权限要求一些表 的记录的值必须要赋予权限之后才能显示;而其他程序员他们调用他们自己的查询语句来查询记录,而这些查询语句的结构对我来讲是未知的,并且其他程序员都是用ResultSet对象
来操作数据库的,所以才有此要求;
望各位出出注意
是否有where
是否有表的别名
是否有查询的字段的别名
是否排序
是否分组等等
如果可以的话我愿意实现
public String getselectstr(String selectstr){//分析selectstr
//加入我的 [where][and]程序员ID='他的ID'return
}这段代码好象也很难实现另外 在Oracle(pl/sql)好象可以实现,请Oracle高手指点一二
其他程序员的数据代码一概是:rs.next(),rs.getXXX 等等
如果返回其他类:如Vector;LinkedList 对整个系统的代码改动过大?好象在Oracle中的存储控制,配合存储过程和触发器可以实现,不过我
对Oracle不是很熟悉;请求解决方案
String fields,//要比较的字段别名
String comparevalue//要比较的值,这里比较方式
){ //就以 “=”
dstSql="select * from (" + srcSql + ") as tb1" ;
dstSql+="where tb1." + fields + "='" + comparevalue +"'"; ResultSet rs=conn.ExecQuery(dstSql);
return rs;
}
正在考虑中
如果有不同的意见请赶快发表
用ResultSet来作为中间数据结构确实是比较傻的行为。
<<ResultSet 如果能够作为返回参数的话,用处很大>>
这句话俺是不会认可的。
简单说一点吧,ResultSet是JDBC定义数据描述接口,而如果你使用ResultSet作为数据返回,那么就把你的数据读取接口和JDBC紧密地耦合在一起。也就是说把数据获取逻辑和数据获取方式这两者耦合在了一起,这样的接口等于说只能和JDBC在一起使用,首先是一个不灵活的结构。这两者都无法独立地变化,所谓牵一发而动全身,等到开发的后期就会痛苦了。如果发生数据持久化需求的变更就更加痛苦了,假设你们的客户要求未来的数据不再使用数据库存储,而是使用XML文件存储,难道还要返回ResultSet?如果不是,那么需要修改所有的数据获取程序。
另外,如果抽象出合理的数据结构,那么所有的数据操作就可以基于数据结构进行。如果你使用ResultSet作为标准数据结构,标准的接口污染!ResultSet接口中定义的所有方法并不是你所需要的,可能你只需要简单的get*系列方法,那么为什么还要容纳那么多不相干的东西进来?
再者,ResultSet只是一个接口,具体的实现是不同的JDBC驱动厂商来实现的,可能Oracle有它自己的实现,mysql有自己的实现等等。如果你的程序还必须倚赖在ResultSet实现细节上才能达到正确的执行效果,那么就更可怕了,等于说和具体的JDBC驱动绑定死了。其实不合理的地方有很多,比如俺得到了一个ResultSet,现在需要遍历整个数据集,那么可能代码会是这样:
while(rs.next()) {
// ....
}
问题是:“为什么在遍历数据结果的时候俺还要处理SQLException?”楼主你觉得合理啊?这个遍历数据和SQLException应该有关系吗?抽象数据类型(ADT)是很关键的东西,如果没有合理地抽象,会让你的程序很痛苦。