java 获取mysql 某个数据库中所有表及表的列的信息

如题
获得表和字段信息.谢谢
读取视图呢?

获得某表所有列的信息:
String sql = select * from tname;//tname为某一表名
Connection conn = ....;
Statement st = conn.createStatement();
ResultSet rs = st.rs = st.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
int colcount = rsmd.getColumnCount();//取得全部列数

for(int i=0;i<colcount;i++){
String colname = rsmd.getColumnName(i);//取得全部列名
}

以上为某表字段具体查询,如果是查询表的信息,如在mysql服务器上那样的查询结果的话,可以用一下代码:
ResultSet.executeQuery("show tables")可以的到所有的表信息。
ResultSet.executeQuery("describe tname")可以得到表的字段信息。//tname为表名
p.s :同样适用于jsp。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-08-15
这是我曾经做过的项目里面部分DB操作代码,看是否对你有帮助:
/** 数据库驱动 */
public String DB_driver = "com.mysql.jdbc.Driver";
/** 数据库位置 */
public String DB_URL = "jdbc:mysql://localhost:3306/";
/** 数据库名字 */
public String DB_name = "information_schema"
/** 数据库用户 */
public String DB_user = "root";
/** 数据库密码 */
public String DB_pswd = "123456";

/**
*初始化驱动器
*/
protected void initDriver() {
try {
Class.forName(DBDriverStr); //装载数据库驱动
Helper.logger.fine("数据库 驱动 加载成功");
} catch (ClassNotFoundException e) { //驱动加载失败
e.printStackTrace();
Helper.logger.severe("数据库驱动加载失败:\n" + e.toString());
}
}

/**
*新建一个数据库连接
*本方法不对外开发,只为本类服务
* @return Connection 一个数据库连接实例
*/
protected Connection getConnection() {
Connection connection = null;
try {
//以 DBUserNameStr,DBUserPswdStr 身份获取与数据库 DBURLStr 连接
connection =
DriverManager.getConnection(DBURLStr, DBUserNameStr, DBUserPswdStr);
//设置事务为非自动递交, 事务递交由上层调用完成
connection.setAutoCommit(false);
} catch (SQLException e) { //数据源查询失败
e.printStackTrace();
Helper.logger.severe("数据源加载失败:" + e.toString());
}

return connection;
}

获取到了与数据库的连接以后就很好办事了,只要做一些 SQL 查询了,借鉴一下一楼的代码:
//tables为 information_schema 数据库中记录表格信息的表
String sql = select * from tables";
Connection conn = getConnection();
Statement st = conn.createStatement();
ResultSet rs = st.rs = st.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
int colcount = rsmd.getColumnCount();//取得全部列数
第2个回答  2009-08-17
用元数据api,也在jdbc的包下面
===============================
视图如法炮制,java才不管你视不视图,视图不也是要返回结果集的吗?
第3个回答  2009-08-14
mysql中 有个information_schema的数据库 里面有个TABLES的表

这里面就包含了MYSQL 所有表的信息

至于表的字段具体信息我也不太清楚了
相似回答