//获取数据表结构
public static void
getConnAndTableStruct(){
Connection connection = null;
PreparedStatement pstmt = null;
ResultSetMetaData rsmd = null;
try {
//mysql连接
Class.forName("org.gjt.mm.mysql.Driver");
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test", "root", "root");
//oracle连接
//
Class.forName("oracle.jdbc.driver.OracleDriver");
//
String
url="jdbc:oracle:thin:@173.10.2.11:1521:test";
//
connection=DriverManager.getConnection(url,"root","root");
pstmt = (PreparedStatement) connection.prepareStatement("select * from
user");
pstmt.execute(); //这点特别要注意:如果是Oracle而对于mysql可以不用加.
rsmd = (ResultSetMetaData) pstmt.getMetaData();
className="User";
tableName="user";
for (int i = 1; i < rsmd.getColumnCount() + 1; i++) {
Table table=new Table();
table.setColumnName(rsmd.getColumnName(i));
table.setColumnType(rsmd.getColumnClassName(i).substring(rsmd.getColumnClassName
(i).lastIndexOf(".")+1));
tables.add(table);
System.out.println(rsmd.getColumnName(i)+ " "
+rsmd.getColumnTypeName(i)
+" " +rsmd.getColumnClassName(i)+
" "+rsmd.getTableName(i));
}
}
catch (ClassNotFoundException cnfex) {
cnfex.printStackTrace();
}
catch (SQLException sqlex) {
sqlex.printStackTrace();
}
}
注意:
ResultSetMetaData
对象可以用于查找 ResultSet 中的列的类型和特性。
方法索引
getCatalogName(int)
获得列的表的目录名。
getColumnCount()
获得 ResultSet
中的列数。
getColumnDisplaySize(int)
获得列的正常的最大字符宽度。
getColumnLabel(int)
获得打印输出和显示的建议列标题。
getColumnName(int)
获得列名。
getColumnType(int)
获得一个列的 SQL 类型。
getColumnTypeName(int)
获得一个列的数据源特定的类型名。
getPrecision(int)
获得一个列的十进制数字的位数。
getScale(int)
获得一个列的十进制小数点右面数字的位数。
getSchemaName(int)
获得一个列的表的模式。
getTableName(int)
获得列的表名。
isAutoIncrement(int)
列是否自动计数,因此它是只读的。
isCaseSensitive(int)
列是否区分大小写。
isCurrency(int)
列是否是通用的。
isDefinitelyWritable(int)
对列的写操作是否一定成功。
isNullable(int)
在该列中是否可以放一个 NULL
值。
isReadOnly(int)
列是否是不可写的。
isSearchable(int)
该列是否是可以查询的。
isSigned(int)
该列是否是有符号数。
isWritable(int)
对该列的写操作是否会成功。
相关文章
- 01-08JAVA内存泄露查询
- 01-08随心测试_数据库_003 <数据库存储结构>
- 01-08【Teradata SQL】数据库中查询 一个字段包含另一个字段sql
- 01-08java – Spring中的数据库写锁实体
- 01-08数据库第四周实验——索引,插入,查询 ——例题实现
- 01-08数据库【数据索引&插入&查询】
- 01-08python网络编程 day40 数据库——连表查询和子查询
- 01-08robotframework(12)修改用户密码(从数据库查询短信验证码)
- 01-08java中定时器模拟数据库备份
- 01-08数据库笔记3——数据库管理系统体系结构,访问管理,查询优化,恢复机制,并发控制