关于空间数据库在JDBC中的数据类型的研究

96 阅读1分钟

数据库表student

QQ_1722564136959.png

QQ_1722564192806.png

1、创建数据库连接

private static Connection getConn() throws SQLException {
    //1.创建驱动程序类对象:
    //new不能是接口,而是实现类;实现类(要导包)在:com.mysql.jdbc.Driver里;
    Driver driver = new com.mysql.jdbc.Driver(); //新版本
    //Driver driver = new org.gjt.mm.mysql.Driver(); //旧版本

    //设置用户名和密码
    Properties props = new Properties();
    props.setProperty("user", user);
    props.setProperty("password", password);

    //2.连接数据库,返回连接对象
    return driver.connect(url, props);

    //输出:com.mysql.jdbc.JDBC4Connection@ba4d54,表明连接成功
}

2、获取MeteData

Connection conn = getConn();
Statement statement = conn.createStatement();
//打印Statement对象的内存地址:com.mysql.cj.jdbc.StatementImpl@23f7d05d
ResultSet rs = statement.executeQuery("select * from student");
ResultSetMetaData metaData = rs.getMetaData();
// 字段个数
int columnCount = metaData.getColumnCount();
for (int i = 1; i <columnCount+1 ; i++) {
    // 获取字段名称
    String columnName = metaData.getColumnName(i);
    // 获取字段类型
    int columnType = metaData.getColumnType(i);
    // 获取字段类型名称
    String columnTypeName = metaData.getColumnTypeName(i);
}

结果

columnName:uuid
columnType:4
columnTypeName:INT
columnName:name
columnType:12
columnTypeName:VARCHAR
columnName:address
columnType:12
columnTypeName:VARCHAR
columnName:age
columnType:4
columnTypeName:INT
columnName:sex
columnType:1
columnTypeName:CHAR
columnName:geom
columnType:-2
columnTypeName:GEOMETRY

结论

可以根据获取到的字段类型进行转换,转换为其他数据库insert格式

例如:Postgis格式为WKB格式 则可以将返回的数据转为WKB格式