java获取数据库里表的名字

一.Java方法
// 得到当前数据库下所有的表名
public void getTableNameByCon(Connection con) {
try {
DatabaseMetaData meta = con.getMetaData();
ResultSet rs = meta.getTables(null, null, null,
new String[] { "TABLE" });
while (rs.next()) {
System.out.println("表名:" + rs.getString(3));
System.out.println("表所属用户名:" + rs.getString(2));
System.out.println("------------------------------");
}
con.close();
} catch (Exception e) {
try {
con.close();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// TODO Auto-generated catch block
e.printStackTrace();
}
}
二.通过sql语句得到数据库里所有的表名
--MySQL数据库
show tables;
--Oracle数据库(当前登录用户下的表)
select uo.object_name from user_objects uo where uo.object_type = 'TABLE';
--sql server 2000/2005数据库
select name from sysobjects
--sybase数据库
select name from sysobjects where type='U';
--DB2数据库

select tabname from syscat.tables where tabschema = current schema ;// 
获取当前模式下面的所有用户表

转自:http://hi.baidu.com/rybwxn/blog/item/1a59502a75a7de25d52af1cc.html
### 如何用 Java 后端代码遍历数据库中的所有 要通过 Java 后端代码遍历数据库中的所有,可以利用 JDBC 的元数据功能来获取当前数据库下的所有信息。以下是具体的实现方式: #### 获取数据库的示例代码 以下是一个完整的示例代码,展示如何使用 JDBC 来遍历 MySQL 数据库中的所有。 ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.DatabaseMetaData; import java.sql.ResultSet; import java.sql.SQLException; public class TableListExample { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/your_database_name"; // 替换为实际的数据库URL String user = "root"; // 替换为实际的用户 String password = "password"; // 替换为实际的密码 try (Connection connection = DriverManager.getConnection(url, user, password)) { DatabaseMetaData metaData = connection.getMetaData(); ResultSet tables = metaData.getTables(null, null, "%", new String[]{"TABLE"}); while (tables.next()) { System.out.println(tables.getString("TABLE_NAME")); // 输出 } } catch (SQLException e) { e.printStackTrace(); } } } ``` 上述代码实现了以下几个关键步骤: 1. **加载并注册驱动程序**:通过 `DriverManager` 自动完成驱动加载[^4]。 2. **建立数据库连接**:使用 `DriverManager.getConnection()` 方法创建与数据库的连接。 3. **获取数据库元数据**:调用 `connection.getMetaData()` 获得关于数据库的信息。 4. **检索信息**:通过 `metaData.getTables()` 方法获取指定模式下的所有称,并过滤出仅包含类型的条目。 5. **处理结果集**:迭代 `ResultSet` 并打印每个名字。 此方法适用于大多数关系型数据库(如 MySQL、PostgreSQL 和 Oracle),只需调整 URL 参数即可适配不同的数据库环境。 --- ### 关于安全性注意事项 为了提高代码的安全性和可维护性,在生产环境中应考虑以下几点: - 将敏感信息(如用户和密码)存储在配置文件中而不是硬编码到源码中。 - 使用 `PreparedStatement` 执行 SQL 查询以防止潜在的 SQL 注入攻击。 --- ### 性能优化提示 如果目标数据库非常庞大且包含大量,则可以通过设置参数进一步缩小范围。例如,限定特定 schema 或匹配某些命规则的。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值