Skip to content

Commit 61658ca

Browse files
Added java column type info
1 parent 9614cb8 commit 61658ca

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

fj-core/src/main/java/org/fugerit/java/core/db/metadata/ColumnModel.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ public String toString() {
5555
private String comment;
5656

5757
private String extra;
58+
59+
private String javaType;
60+
5861

5962
public String getExtra() {
6063
return extra;
@@ -112,6 +115,14 @@ public void setSize(int size) {
112115
this.size = size;
113116
}
114117

118+
public String getJavaType() {
119+
return javaType;
120+
}
121+
122+
public void setJavaType(String javaType) {
123+
this.javaType = javaType;
124+
}
125+
115126
@Override
116127
public String getKey() {
117128
return this.getName().toLowerCase();

fj-core/src/main/java/org/fugerit/java/core/db/metadata/MetaDataUtils.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
import java.sql.DatabaseMetaData;
2525
import java.sql.PreparedStatement;
2626
import java.sql.ResultSet;
27+
import java.sql.ResultSetMetaData;
28+
import java.sql.Statement;
2729
import java.util.ArrayList;
2830
import java.util.List;
2931

@@ -166,6 +168,20 @@ private static DataBaseModel createModel( ConnectionFactory cf, String catalog,
166168
}
167169
columnsRS.close();
168170

171+
String sql = "SELECT * FROM "+tableId.toIdString()+" WHERE 1=0";
172+
try ( Statement stm = conn.createStatement();
173+
ResultSet rsJavaType = stm.executeQuery( sql ) ) {
174+
ResultSetMetaData rsmd = rsJavaType.getMetaData();
175+
for ( int k=0; k<rsmd.getColumnCount(); k++ ) {
176+
String colName = rsmd.getColumnName( k+1 );
177+
String javaName = rsmd.getColumnClassName( k+1 );
178+
ColumnModel columnModel = tableModel.getColumn( colName );
179+
columnModel.setJavaType( javaName );
180+
}
181+
} catch ( Exception e ) {
182+
LogFacade.getLog().info( "Error getting java type : "+e, e );
183+
}
184+
169185
if ( mode == MODE_STRICT ) {
170186
ResultSet pkRS = dbmd.getPrimaryKeys( tableModel.getCatalog(), tableModel.getSchema(), tableModel.getName() );
171187
if ( pkRS.next() ) {

0 commit comments

Comments
 (0)