[英]How can I detect a column type and insert data in JDBC?
我想在jdbc中插入数据。 我写这段代码:
int i=0;
while(i < columnCount ){
i++;
stmt_ver.setString(i, x[i] );
stmt_ver.setDate(i+1, x[i+1] );
stmt_ver.setDouble(i+2, x[i+2] );
}
但我不想写setString
,或setDate
或setDouble
。 我想动态地做。 我怎样才能做到这一点?
谢谢。
您可以使用DatabaseMetaData
类的getColumns方法来获取列的数据类型。 此方法返回ResultSet
对象。 此对象的第5列包含列的数据类型。
public int getType(Connection con, String tableName, String columnName) throws SQLException
{
DatabaseMetaData dbmd = con.getMetaData();
ResultSet rs = dbmd.getColumns(null, null, tableName, columnName);
Integer type = null;
while(rs.next())
{
type = rs.getInt(5);
}
return type;
}
假设您的数据库中有一个有效的tableName
和columnName
,那么ResultSet
对象理想情况下应该只包含一行。
如果以前未访问数据库,则必须访问元数据。
http://docs.oracle.com/javase/6/docs/api/java/sql/Connection.html#getMetaData()
得到列定义:
并为每列读取类型并从DB列类型到Java类型进行一些映射。 这基本上就是ORM(如Hibernate)正在做的事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.