当前位置:编程学习 > JAVA >>

将cursor中取出数据的一条记录所有字段直接合并为一个字符串

现在正在做一个东西,需要将从数据库某张表中数据取出,但取出一条数据不是将一个字段一个字段的单独取值,而是想将所有字段内容以一个分隔符(如“,”号)分隔开后,合并成一个String!
请问有什么简单方法吗?
因为有多张不同结构的表要进行这样操作,因此想要一个通用的方法来做^^
请高手指定,最好能给出例子来
先谢了! --------------------编程问答-------------------- apache的common.lang包有个StringUtils.java
有这个方法可以

    /**
     * <p>Joins the elements of the provided array into a single String
     * containing the provided list of elements.</p>
     *
     * <p>No delimiter is added before or after the list.
     * Null objects or empty strings within the array are represented by
     * empty strings.</p>
     *
     * <pre>
     * StringUtils.join(null, *)               = null
     * StringUtils.join([], *)                 = ""
     * StringUtils.join([null], *)             = ""
     * StringUtils.join(["a", "b", "c"], ';')  = "a;b;c"
     * StringUtils.join(["a", "b", "c"], null) = "abc"
     * StringUtils.join([null, "", "a"], ';')  = ";;a"
     * </pre>
     *
     * @param array  the array of values to join together, may be null
     * @param separator  the separator character to use
     * @return the joined String, <code>null</code> if null array input
     * @since 2.0
     */
public static String join(Object[] array, char separator)

如果你查询出来的是对象数组,这个方法刚刚好,
如果是基于框架查询的,结果是实体类,你可以转换一下 --------------------编程问答-------------------- StringUtils确实很实用。
楼上方法很好。

--------------------编程问答-------------------- 用连接符|连接起来

--------------------编程问答--------------------
引用 1 楼 ZuxiangHuang 的回复:
apache的common.lang包有个StringUtils.java
有这个方法可以

    /**
     * <p>Joins the elements of the provided array into a single String
     * containing the provided list of elements.</p>
     *
     * <p>No delimiter is added before or after the list.
     * Null objects or empty strings within the array are represented by
     * empty strings.</p>
     *
     * <pre>
     * StringUtils.join(null, *)               = null
     * StringUtils.join([], *)                 = ""
     * StringUtils.join([null], *)             = ""
     * StringUtils.join(["a", "b", "c"], ';')  = "a;b;c"
     * StringUtils.join(["a", "b", "c"], null) = "abc"
     * StringUtils.join([null, "", "a"], ';')  = ";;a"
     * </pre>
     *
     * @param array  the array of values to join together, may be null
     * @param separator  the separator character to use
     * @return the joined String, <code>null</code> if null array input
     * @since 2.0
     */
public static String join(Object[] array, char separator)

如果你查询出来的是对象数组,这个方法刚刚好,
如果是基于框架查询的,结果是实体类,你可以转换一下

从数据库里查出来还是Cursor,不想再将Cursor中的值一个个取出,想直接对Cursor操作而取得一个所需String,请问可行吗? --------------------编程问答-------------------- 是实体就更简单了,直接覆写toString()
就ok了 --------------------编程问答-------------------- 可以考虑利用反射将对象(比如Cursor)所有的成员变量用分隔符连接起来,这样就可以实现通用了。 --------------------编程问答--------------------
引用 5 楼 ZuxiangHuang 的回复:
是实体就更简单了,直接覆写toString()
就ok了

直接用toString()吗?
cursor.toString()....这样可以把所有字段以字符串方式输出? --------------------编程问答--------------------
引用 6 楼 fsh2008 的回复:
可以考虑利用反射将对象(比如Cursor)所有的成员变量用分隔符连接起来,这样就可以实现通用了。

主要是有多张表,而且每张都不一样,所以感觉不大好使用反射的方式,如果是可以的话,对否给个实例呢? --------------------编程问答-------------------- 用sql语句就可以了
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,