当前位置:首页 » 数据仓库 » java读取数据库结构
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

java读取数据库结构

发布时间: 2022-08-28 13:44:09

⑴ java中如何读出sqlserver数据库中的表结构

java.sql.ResultSetMetaData
--------------------------------------------------------------------------------

public interface ResultSetMetaData
可用于获取关于 ResultSet 对象中列的类型和属性信息的对象。以下代码片段创建 ResultSet 对象 rs,创建 ResultSetMetaData 对象 rsmd,并使用 rsmd 查找 rs 有多少列,以及 rs 中的第一列是否可以在 WHERE 子句中使用。

ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE2");
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
boolean b = rsmd.isSearchable(1);

以前写过,没有备份代码,用java.sql.ResultSetMetaData很简单就实现了,用rs.getMetaData();可生成其实现类的对象....

⑵ 通过java程序如何在已知表明的情况下获得数据库中该张表的表结构

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();
}

}

⑶ Java怎样读取ACCESS数据库文件

1. jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};
2.使用ODBC建立WINDOW数据源的方法:
开始
>>控制面板
>>管理工具
>>数据源(ODBC)
>>用户DSN或系统DSN
>>点添加
>>找到"Microsoft Access Driver (*.mdb)",选中,再点完成>>自定义数据源名称,可创建一个新的或选择已经有的Access数据库(.mdb)其它可以不选
>>确定>>确定
到此数据源已经建立成功
最后使用jdbc的方法进行连接。

⑷ java怎样读取数据库表中字段的数据类型

Java获取数据库的表中各字段的字段名,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
public class TestDemo {
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://数据库IP地址:3306/数据库名称";
String user = "数据库用户名";
String pass = "数据库用户密码";
conn = DriverManager.getConnection(url, user, pass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
Connection conn = getConnection();
String sql = "select * from AccessType";
PreparedStatement stmt;
try {
stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData data = rs.getMetaData();
for (int i = 1; i <= data.getColumnCount(); i++) {
// 获得所有列的数目及实际列数
int columnCount = data.getColumnCount();
// 获得指定列的列名
String columnName = data.getColumnName(i);
// 获得指定列的列值
int columnType = data.getColumnType(i);
// 获得指定列的数据类型名
String columnTypeName = data.getColumnTypeName(i);
// 所在的Catalog名字
String catalogName = data.getCatalogName(i);
// 对应数据类型的类
String columnClassName = data.getColumnClassName(i);
// 在数据库中类型的最大字符个数
int columnDisplaySize = data.getColumnDisplaySize(i);
// 默认的列的标题
String columnLabel = data.getColumnLabel(i);
// 获得列的模式
String schemaName = data.getSchemaName(i);
// 某列类型的精确度(类型的长度)
int precision = data.getPrecision(i);
// 小数点后的位数
int scale = data.getScale(i);
// 获取某列对应的表名
String tableName = data.getTableName(i);
// 是否自动递增
boolean isAutoInctement = data.isAutoIncrement(i);
// 在数据库中是否为货币型
boolean isCurrency = data.isCurrency(i);
// 是否为空
int isNullable = data.isNullable(i);
// 是否为只读
boolean isReadOnly = data.isReadOnly(i);
// 能否出现在where中
boolean isSearchable = data.isSearchable(i);
System.out.println(columnCount);
System.out.println("获得列" + i + "的字段名称:" + columnName);
System.out.println("获得列" + i + "的类型,返回SqlType中的编号:"+ columnType);
System.out.println("获得列" + i + "的数据类型名:" + columnTypeName);
System.out.println("获得列" + i + "所在的Catalog名字:"+ catalogName);
System.out.println("获得列" + i + "对应数据类型的类:"+ columnClassName);
System.out.println("获得列" + i + "在数据库中类型的最大字符个数:"+ columnDisplaySize);
System.out.println("获得列" + i + "的默认的列的标题:" + columnLabel);
System.out.println("获得列" + i + "的模式:" + schemaName);
System.out.println("获得列" + i + "类型的精确度(类型的长度):" + precision);
System.out.println("获得列" + i + "小数点后的位数:" + scale);
System.out.println("获得列" + i + "对应的表名:" + tableName);
System.out.println("获得列" + i + "是否自动递增:" + isAutoInctement);
System.out.println("获得列" + i + "在数据库中是否为货币型:" + isCurrency);
System.out.println("获得列" + i + "是否为空:" + isNullable);
System.out.println("获得列" + i + "是否为只读:" + isReadOnly);
System.out.println("获得列" + i + "能否出现在where中:"+ isSearchable);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}

⑸ java怎么把数据库的数据取出来

java 对读取数据库的数据可以显示在网页上,可以对数据进行分类,保存到其它数据库或者是文件里等,当然前提就是要把数据读取出来

以读取数据为例:

解析:

  1. 上面代码就是首先注册驱动,然后进行连接

  2. 如果连接成功

  3. 就可以用select语句进行执行并读取了

⑹ java树形结构如何从数据库读取数据

定义一个TreeNode类.里面有
id 自身id
parentId 父节点id
name 树显示文本
url 链接地址
open 是否展开树
等属性.
将从数据库查出来的数据一个个set到TreeNode里面.封装成一个List<TreeNode>.
再将这个List转换成你的树所需要的格式内容.比如json格式

⑺ java如何读取access数据库

虽然简单,对初学者来说,如果没有一段可以成功执行的代码供参考,还真难调试
先用ACCESS建一个数据库 DB1.MDB,里面有一表"table1",内有字段"Name"和"Age"
随便填几条记录,保存后到ODBC里建一个系统数据源"Access2000"连上此数据库
然后就可以用下面的代码显示数据库里的所有记录了
database.java
------------------
import java.sql.*;

class database {
public static void main(String args[]) {
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:Access2000";
Connection connection=DriverManager.getConnection(url);
Statement statement = connection.createStatement();
String sql="SELECT * FROM table1";
ResultSet rs = statement.executeQuery(sql);
String tt;
while (rs.next()) {
System.out.print("姓名:" + rs.getString("Name"));
System.out.println(" 年龄:" + rs.getString("Age"));
}
rs.close();
connection.close();
}
catch(Exception ex){
System.out.println(ex);
System.exit(0);
}
}
}
------------
OK,编译运行:
E:/java>javac database.java

E:/java>java database

⑻ java程序读取db2数据库中所有数据表以及表数据,创建到mysql数据库中

因为我没有转载DB2 所以没有办法帮你写出具体的sql语句,也不能测试.我oracle 为例吧.
1.不管java 连接那个数据库都是一样的.
Class.forName(dir);
String url = "";//数据库名,用户名和密码
Connection conn = DriverManager.getConnection(url);
Statement stat = conn.createStatement();
// 执行你想要执行的sql语句.下面是查询,修改和删除有点不一样.
ResultSet rs = stat.executeQuery(sql);
你可以通过select table_name from user_tables; 这个sql语句查询才出数据库里面所有的表.
再通过 select * from ALL_TAB_COLS A where lower(A.Table_Name) = '表名' 查询出某一个表的相关信息.这样是有点繁琐,不过不失为一种解决方法.

2 .读取数据就更容易了.
直接执行select 就可以了.

3. 帮刚刚读出来的表结构组装成建表语句. create 一下就可以了.

4.关于数据类型我也不是很清楚,你可以在网上查一查db2有哪些数据类型.然后在建表的时候做一下儿转换就可以了.

5.你说的也就是把刚刚查询出来的数据插入到数据库中.insert 就可以了.

其实java 操作数据库很简单的.不同于c.查询出来后,做适当的组装处理.就可以得到你想要的结果.
希望对你有帮助.

⑼ 在JAVA中操作oracle数据库,在不知道表结构的情况下如何读取数据显示在jsp页面上

首先你要先得到表结构,就是各个字段名,通过这些字段来组织SQL语句查询,数据放在字符串数组中,页面取的时候循环出来就OK了,希望能帮到你

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

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为表名