java 返回ResultSet类型
2016-11-07 17:40
162 查看
java中操作数据库时的ResultSet,当关闭对应的Statement或Connection时自动关闭(个人感觉它是一个类似引用的东西)。
我之前写的一个程序将A类中查询数据库的结果ResultSet返回给B类,进而读取数据。但是对应的ResultSet、Statement、Connection的关闭问题成了难题:
1:在B类中Statement、Connection不可见,无法关闭;
2:在A类中返回ResultSet之前关闭,则ResultSet自动关闭。
那么如何解决呢?
其实这样的做法本来就不适合封装,因为ResultSet是持久化层而非逻辑层,在设计时就应该将两层之间尽可能少的关联。
解决方案:
总体思想:将ResultSet转换成别的数据结构返回。
1:可以转成List(网上很对都推荐这样做)。
2:转成JSONArray类型(自己感觉很方便,便于转换和提取数据)
以上只是思路,具体转换方法:
转List:http://www.cnblogs.com/seaven/archive/2009/07/21/1527509.html
转JSONArray:http://www.cnblogs.com/yqskj/archive/2013/05/27/3101915.html
我之前写的一个程序将A类中查询数据库的结果ResultSet返回给B类,进而读取数据。但是对应的ResultSet、Statement、Connection的关闭问题成了难题:
1:在B类中Statement、Connection不可见,无法关闭;
2:在A类中返回ResultSet之前关闭,则ResultSet自动关闭。
那么如何解决呢?
其实这样的做法本来就不适合封装,因为ResultSet是持久化层而非逻辑层,在设计时就应该将两层之间尽可能少的关联。
解决方案:
总体思想:将ResultSet转换成别的数据结构返回。
1:可以转成List(网上很对都推荐这样做)。
2:转成JSONArray类型(自己感觉很方便,便于转换和提取数据)
以上只是思路,具体转换方法:
转List:http://www.cnblogs.com/seaven/archive/2009/07/21/1527509.html
转JSONArray:http://www.cnblogs.com/yqskj/archive/2013/05/27/3101915.html
相关文章推荐
- java 中ResultSet可以获取的数据类型及返回值类型列表
- JAVA调用DOTNET写的返回为DataSet类型的WebService函数出错 [cvc-complex-type.4:Attribte 'part' must appear on element 'mime:content'.]
- java调用存储过程时,返回结果不是ResultSet的时候的处理
- java方法的重载与覆盖的返回值类型 转
- ibatis调用存储过程:返回NUMBER,对应java类型的解决办法
- 如何从 Java 存储过程将 JDBC ResultSet 作为 Ref Cursor 返回
- 4.当形参,返回值类型不是JavaBean式的复合类,Map时,CXF无法处理:服务端业务逻辑层实现类
- Java返回类型泛型的用法小结
- Java中Date转换大全,返回yyyy-MM-dd的Date类型
- 2.当形参,返回值类型不是JavaBean式的复合类,Map时,CXF无法处理:服务器实现类
- Java程序返回一个list类型而前台的的flex对其进行读取
- .net(C#)无法获取Java Web Service返回自定义类型的值
- Java解析XML格式字符串返回Document类型对象(2009-05-01 04:33:26)转载标签:javaxmldocument杂谈 分类:软件,网络
- Java程序低手之Override返回类型以及Unicode和StringBuilder
- java方法的重载与覆盖的返回值类型
- Hibernate操作Blob类型字段出现java.lang.AbstractMethodError: oracle.jdbc.driver.OracleResultSetImpl.getBlob(Ljava/lang/String;)Ljava/sql/
- Java 5.0 泛型之 通过泛型方法返回泛型类型
- java,返回多类型数组
- Java中Date转换大全,返回yyyy-MM-dd的Date类型
- 3.当形参,返回值类型不是JavaBean式的复合类,Map时,CXF无法处理:服务端业务逻辑层接口