首页 技术 正文
技术 2022年11月16日
0 收藏 851 点赞 3,764 浏览 2184 个字

代码:

package com.hy.fieldandvalue;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.Collections;import java.util.List;import org.apache.log4j.Logger;import com.hy.DBParam;class DbParam{    public final static String Driver = "oracle.jdbc.driver.OracleDriver";    public final static String DbUrl = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";    public final static String User = "ufo";    public final static String Pswd = "1234";}class KeyValue implements Comparable<KeyValue>{    String key;    Object value;    @Override    public int compareTo(KeyValue another) {        return this.key.compareTo(another.key);    }}public class Fetcher {    private static Logger log = Logger.getLogger(Fetcher.class);    public static void main(String[] args) {        Connection conn = null;        Statement stmt = null;        try{            Class.forName(DBParam.Driver).newInstance();            conn = DriverManager.getConnection(DBParam.DbUrl, DBParam.User, DBParam.Pswd);            stmt = conn.createStatement();            //String sql = "select * from allocation_request where shipper_code='10005' and order_no='1911271000500004' and to_char(delivery_date,'yyyy-MM-dd')='2019-11-28'";            String sql="select * from testtb17 where id=114 ";            ResultSet rs = stmt.executeQuery(sql);            ResultSetMetaData rsMetadata = rs.getMetaData();            int count = rsMetadata.getColumnCount();            int index = 0;            while (rs.next()) {                index++;                List<KeyValue> kvList=new ArrayList<KeyValue>();                for (int i=0; i<count; i++) {                    int idx=i+1;                    KeyValue kv=new KeyValue();                    kv.key = rsMetadata.getColumnLabel(idx);// 列名                    kv.value=rs.getString(kv.key);                    kvList.add(kv);                }                Collections.sort(kvList);                System.out.println();                StringBuilder sb=new StringBuilder();                int idx=0;                for(KeyValue kv:kvList) {                    idx++;                    sb.append(fixSizeStr("#"+idx,4)+fixSizeStr(kv.key,30)+kv.value+"\n");                }                System.out.println(sb.toString());            }        } catch (Exception e) {            System.out.print(e.getMessage());            e.printStackTrace();        } finally {            try {                stmt.close();                conn.close();            } catch (SQLException e) {                log.error("Can't close stmt/conn because of " + e.getMessage());            }        }    }    /**     * get a fix-length string,if less add space     * @param str     * @param size     * @return     */    private static String fixSizeStr(String str, int size) {        return String.format("%-"+size+"s", str);    }}

输出:

#1  AGE                           0#2  CREATEDTIME                   2019-06-16 10:21:46#3  ID                            114#4  NAME                          0

–END– 2019年12月4日20:26:01

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,085
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,560
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,409
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,182
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,819
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,902