Java获取oracle字段注释_java JDBC 用DatabaseMetaData怎么从Oracle数据库中获得表字段的注释信息?...

java JDBC 用DatabaseMetaData怎么从Oracle数据库中获得表字段的注释信息?

import java.io.File;

import java.io.FileWriter;

import java.io.PrintWriter;

import java.sql.Connection;

import java.sql.DatabaseMetaData;

import java.sql.DriverManager;

import java.sql.ResultSet;

import javax.swing.filechooser.FileSystemView;

public class DBHelpInfo {

/**

* 这里是Oracle连接方法

*private static final String driver = "oracle.jdbc.driver.OracleDriver";

*private static final String url = "jdbc:oracle:thin:@localhost:1521:orcl";

*private static final String uid = "system";

*private static final String pwd = "sys";

*这里是SQL Server连接方法

*private static final String url = "jdbc:sqlserver://localhost:1433;DateBaseName=数据库名";

*private static final String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"

*private static final String uid = "sa";

*private static final String pwd = "sa";

*

*

* 这里是MySQL连接方法

*/

private static final String driver="com.mysql.jdbc.Driver";

private static final String pwd="root";

private static final String user="root";

private static final String url = "jdbc:mysql://localhost/test"

+ "?user=" + user + "&password=" + pwd

+ "&useUnicode=true&characterEncoding=UTF-8";

private static Connection getConnection=null;

public static void main(String[] args) {

FileSystemView fsv=FileSystemView.getFileSystemView();

String path=fsv.getHomeDirectory().toString();//获取当前用户桌面路径

getConnection=getConnections();

try {

DatabaseMetaData dbmd=getConnection.getMetaData();

ResultSet resultSet = dbmd.getTables(null, "%", "%", new String[] { "TABLE" });

while (resultSet.next()) {

String tableName=resultSet.getString("TABLE_NAME");

//System.out.println(tableName);

if(tableName.equals("user")){

//ResultSet rs =getConnection.getMetaData().getColumns(null, getXMLConfig.getSchema(),tableName.toUpperCase(), "%");//其他数据库不需要这个方法的,直接传null,这个是oracle和db2这么用

ResultSet rs = dbmd.getColumns(null, "%", tableName, "%");

File directory = new File(path);

FileWriter fw = new FileWriter(directory+ "\\"+tableName.toUpperCase()+".xml");

PrintWriter pw = new PrintWriter(fw);

System.out.println("表名:"+tableName+"\t\n表字段信息:");

pw.write("

\n");

while(rs.next()){

pw.write("\t

\n");

System.out.println("字段名:"+rs.getString("COLUMN_NAME")+"\t字段注释:"+rs.getString("REMARKS")+"\t字段数据类型:"+rs.getString("TYPE_NAME"));

}

pw.write("

");

pw.flush();

pw.close();

}

}

System.out.println("生成成功!");

} catch (Exception e) {

e.printStackTrace();

}

}

public static Connection getConnections(){

try {

//Properties props =new Properties();

//props.put("remarksReporting","true");

Class.forName(driver);

getConnection=DriverManager.getConnection(url);

} catch (Exception e) {

e.printStackTrace();

}

return getConnection;

}

public static String getSchema() throws Exception {

String schema;

schema =getConnection.getMetaData().getUserName();

if ((schema == null) || (schema.length() == 0)) {

throw new Exception("ORACLE数据库模式不允许为空");

}

return schema.toUpperCase().toString();

}

}

上面的代码可以获取MySQL的,但换成Oracle的就不行了?请教怎么在Oracle数据库中获得表字段的注释信息?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值