1 package migratool.access;
2
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.ResultSet;
6 import java.sql.ResultSetMetaData;
7 import java.sql.SQLException;
8 import java.sql.Statement;
9 import java.util.Iterator;
10 import java.util.Vector;
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 public class Extractor {
40
41 private boolean iniciou;
42
43
44 private static Extractor singleton;
45
46 private Extractor() {
47 }
48
49
50
51
52
53 public static Extractor getInstance(){
54 if (singleton == null)
55 singleton = new Extractor();
56 return singleton;
57 }
58
59
60
61
62
63
64 public Connection getConnection(){
65 Connection con = null;
66
67 String url = "jdbc:odbc:db2";
68 String user = "";
69 String password = "";
70 try{
71 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
72 con = DriverManager.getConnection(url,user,password);
73 }catch(Exception erro){
74 erro.printStackTrace();
75 }
76 return con;
77 }
78
79
80
81
82
83 public void closeConnection(Connection con) {
84 try{
85 if (!con.isClosed())
86 con.close();
87 }catch(Exception erro){
88 erro.printStackTrace();
89 }
90 }
91
92 public static void main(String [] args){
93 Extractor ext = Extractor.getInstance();
94 Connection conn = ext.getConnection();
95 Statement stmt;
96 ResultSet rs;
97
98 try {
99 stmt = conn.createStatement();
100 rs = stmt.executeQuery("select * from empregado");
101
102 Vector nomeColunas = new Vector();
103 Vector linhas = new Vector();
104 ResultSetMetaData rsmd = rs.getMetaData();
105 for (int i =1; i <= rsmd.getColumnCount(); ++i)
106 nomeColunas.addElement(rsmd.getColumnName(i));
107 while (rs.next()){
108 linhas.addElement(getProximaLinha(rs, nomeColunas));
109 }
110
111 Iterator itNomeColunas = nomeColunas.iterator();
112 while(itNomeColunas.hasNext()){
113 String nomeColunaI = (String)itNomeColunas.next();
114 System.out.print(nomeColunaI + " | ");
115 }
116
117 System.out.println("\n--------------------------");
118 Iterator itlinhas = linhas.iterator();
119 while(itlinhas.hasNext()){
120 Vector dadoLinhaI = (Vector)itlinhas.next();
121 Iterator itDados = dadoLinhaI.iterator();
122 while(itDados.hasNext()){
123 String dados = itDados.next().toString();
124 System.out.print(dados + " | ");
125 }
126 System.out.println();
127 }
128 stmt.close();
129 }
130 catch (SQLException sqlex) {
131 sqlex.printStackTrace();
132 }
133 ext.closeConnection(conn);
134 }
135
136 private static Vector getProximaLinha( ResultSet rs, Vector rsmd) throws SQLException{
137 Vector linhaCorrente = new Vector();
138 System.out.println(rsmd.size());
139 Iterator itRsmd = rsmd.iterator();
140 while(itRsmd.hasNext()){
141 linhaCorrente.addElement(rs.getObject((String)itRsmd.next()));
142 }
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160 return linhaCorrente;
161 }
162
163
164 }