社区
Java SE
帖子详情
怎么用java读取数据库表结构?(比如有表名,得到该表的字段名,字段类型,好像DatabaseMetaData可以得到)
high_land
2006-11-13 09:37:15
怎么用java读取数据库表结构?
比如:有表名,得到该表的字段名,字段类型。
好像DatabaseMetaData可以得到,但是我没有找到例子。
最好sql server 2000 和 Oracle 写一个例子?
...全文
1237
10
打赏
收藏
怎么用java读取数据库表结构?(比如有表名,得到该表的字段名,字段类型,好像DatabaseMetaData可以得到)
怎么用java读取数据库表结构? 比如:有表名,得到该表的字段名,字段类型。 好像DatabaseMetaData可以得到,但是我没有找到例子。 最好sql server 2000 和 Oracle 写一个例子?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
数据分析小兵
2006-11-19
打赏
举报
回复
一学为主
liqian008
2006-11-19
打赏
举报
回复
只知道metaData可以实现,不知道还有这么多讲究,学习了
ztc16627
2006-11-16
打赏
举报
回复
如果需要得到的信息比较多的话,不要用MetaData
各种DBMS中都有系统表,有一些系统表会详细记录
各个表的表名、表结构(表中的列名、列类型...),
所以可以直接查这些表,当然,你的权限要够
LexChen
2006-11-16
打赏
举报
回复
其实JDBC驱动的MetaData并不是每一个都实现的很好,权限购的话楼上正解,比如Oracle就提供了很多非常方便的视图,呵呵
high_land
2006-11-14
打赏
举报
回复
sql server 2000 和 Oracle 两个都能得到中文名吗?
high_land
2006-11-14
打赏
举报
回复
除了得到字段名,类型。能不能得到字段的中文名?中文名士该字段的解释。
例如:知道tabel名字是“man_info”
得到field名是“manId,name,sex...等”
得到field中文名是“男人ID,姓名,性别....等”
得到field类型名士“NUMERIC,VARCHAR,NUMERIC....等”
high_land
2006-11-14
打赏
举报
回复
还有能得到表的解释吗?
hbwhwang
2006-11-13
打赏
举报
回复
是ResultSetMetaData,不是DatabaseMetaData
混沌骑士
2006-11-13
打赏
举报
回复
mysql的例子 其他数据库 改一下driver和url即可
Connection connection = null;
PreparedStatement pstmt = null;
ResultSetMetaData rsmd = null;
try {
Class.forName("org.gjt.mm.mysql.Driver");
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/PIM", "root", "smyl");
pstmt = connection.prepareStatement("select * from sys_user");
rsmd = pstmt.getMetaData();
for (int i = 1; i < rsmd.getColumnCount() + 1; i++) {
System.out.println(rsmd.getColumnName(i));
}
}
catch (ClassNotFoundException cnfex) {
cnfex.printStackTrace();
}
catch (SQLException sqlex) {
sqlex.printStackTrace();
}
bigelf
2006-11-13
打赏
举报
回复
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.io.*"%>
<%!
String typeToString(int i)
{
String ret="";
switch(i)
{
case(1):ret="CHAR";break;
case(2):ret="NUMERIC";break;
case(3):ret="DECIMAL";break;
case(4):ret="INTEGER";break;
case(5):ret="SMALLINT";break;
case(6):ret="FLOAT";break;
case(8):ret="DOUBLE";break;
case(12):ret="VARCHAR";break;
case(91):ret="DATE";break;
default:ret="other";
}
return ret;
}
%>
<%!
String getCol(ResultSet rst,int type,int colNum)throws Exception
{
String ret="";
switch(type)
{
case(1):ret=rst.getString(colNum);break;
case(4):ret=String.valueOf(rst.getInt(colNum));break;
case(5):ret=String.valueOf(rst.getInt(colNum));break;
case(6):ret=String.valueOf(rst.getFloat(colNum));break;
case(8):ret=String.valueOf(rst.getDouble(colNum));break;
case(12):ret=rst.getString(colNum);break;
default:ret="not know";
}
return trans(ret);
}
%>
<%! String trans(String chi)
{
String result = null;
byte temp [];
try
{
temp=chi.getBytes("iso-8859-1");
result = new String(temp);
}
catch(UnsupportedEncodingException e)
{
System.out.println (e.toString());
}
return result;
}
%>
<html>
<body>
<center>
<html>
<body>
数据库动态代理v0.5b:<hr>
<form action="proxy.jsp" method=get>
<table><tr><td>数据库的名字:<input type=text name=database></td>
<td>表的名字:<input type=text name=table></td></tr>
<tr> <td colspan=2><input type=submit value=提交></td></tr>
</table>
</form>
<%
String database=(String)request.getParameter("database");
String table=(String)request.getParameter("table");
%>
<table border=1>
<%
try
{
//装载驱动程序
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
//创建连接
Connection con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433","bn","bn");
Statement stmt=con.createStatement();
ResultSet rst=stmt.executeQuery("use "+database+";select * from "+table);
ResultSetMetaData meta=rst.getMetaData() ;
int col=meta.getColumnCount();
out.println("表"+table+"共有:"+col+"个字段,这些字段是:<br>");
out.println("<tr>");
for(int i=1;i<col+1;i++)
{
out.println("<td>字段名:");
out.println(meta.getColumnName(i));
out.println("类型: ");
out.println(typeToString(meta.getColumnType(i)));
out.println("</td>");
}
out.println("</tr>");
while(rst.next())
{
out.println("<tr>");
for(int i=1;i<col+1;i++)
{
out.println("<td>"+getCol(rst,meta.getColumnType(i),i)+"</td>");
}
out.println("</tr>");
}
//关闭连接、释放资源
rst.close();
stmt.close();
con.close();
}
catch(Exception e)
{
e.printStackTrace();
}
%>
</table>
<center>
</body>
</html>
jsp的例子
Kafka 消息队列 (KRaft模式)
- 使用
Java
代码指定分区生产消息9. 生产者 - 分析生产者配置 - 分析 Kafka 源码 KafkaConsumerProducerDemo 中的生产者代码 - 使用
Java
代码生产消息,实现消息同步...
Java
获取
数据库
表
名、
字段
名
、
字段
类型
及注释等信息
以前有小伙伴在公众号留言问过如何通过
java
获取
数据库
的所有
表
、及
表
里
字段
的信息,只是私信回复过。在最近的项目中架构部提出了一个数据源的配置需求,就是需要配置公司所有系统...
使用sqlalchemy模块获取
数据库
已有
表
的
表
名及
字段
名
使用sqlalchemy模块获取
数据库
已有
表
的
表
名及
字段
名
/ 模块及
数据库
/ 简介/ mysql语法/ ORM(SQLalchemy)方式建立
表
模型类使用 insepctor 模块与 MetaData 类总结 最近使用Python里ORM模块,例如SQLalchemy来
读取
...
Java
获取
数据库
所有
表
的所有
字段
、
类型
、注释、值
【代码】
Java
获取
数据库
所有
表
的所有
字段
、
类型
、注释、值。
【
Java
】JDBC 获取
数据库
表
名、
字段
名
、注释 Comment 等信息
要使用
Java
JDBC获取
数据库
表
名、
字段
名
和注释信息,你需要连接到
数据库
并执行适当的SQL查询。你需要根据你的
数据库
类型
和连接方式进行适当的修改。注意:获取注释信息的可移植性有限,因为不同的
数据库
管理系统可能...
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章