首页 / JAVA / java 读取数据库中表定义
java 读取数据库中表定义
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java 读取数据库中表定义,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3455字,纯文字阅读大概需要5分钟。
内容图文
com.cloud.smartreport.utils; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.util.ArrayList; import java.util.List; import org.smart4j.framework.dao.DatabaseHelper; public class DbToWord { public static void main(String[] args) { try { Connection conn = DatabaseHelper.getConnection(); DatabaseMetaData metadata = conn.getMetaData(); System.out.println("数据库已知的用户: "+ metadata.getUserName()); System.out.println("数据库的系统函数的逗号分隔列表: "+ metadata.getSystemFunctions()); System.out.println("数据库的时间和日期函数的逗号分隔列表: "+ metadata.getTimeDateFunctions()); System.out.println("数据库的字符串函数的逗号分隔列表: "+ metadata.getStringFunctions()); System.out.println("数据库供应商用于 ‘schema‘ 的首选术语: "+ metadata.getSchemaTerm()); System.out.println("数据库URL: " + metadata.getURL()); System.out.println("是否允许只读:" + metadata.isReadOnly()); System.out.println("数据库的产品名称:" + metadata.getDatabaseProductName()); System.out.println("数据库的版本:" + metadata.getDatabaseProductVersion()); System.out.println("驱动程序的名称:" + metadata.getDriverName()); System.out.println("驱动程序的版本:" + metadata.getDriverVersion()); System.out.println(); System.out.println("数据库中使用的表类型"); ResultSet rs = metadata.getTableTypes(); while (rs.next()) { System.out.println(rs.getString(1)); } rs.close(); System.out.println(); /** * 获取指定的数据库的所有表的类型,getTables()的第一个参数就是数据库名 因为与MySQL连接时没有指定,这里加上,剩下的参数就可以为null了 * 第二个参数是模式名称的模式,但是输出也是什么都没有。谁知道告诉我一声 */ System.out.println("获取指定的数据库的所有表的类型"); ResultSet rs1 = metadata.getTables("stock", null, null, null); while (rs1.next()) { System.out.println(); System.out.println("数据库名:" + rs1.getString(1)); System.out.println("表名: " + rs1.getString(3)); System.out.println("类型: " + rs1.getString(4)); String tablename = rs1.getString(3); List<String> keyList = new ArrayList<String>(); ResultSet rs3 = metadata.getPrimaryKeys("stock", null, tablename); while (rs3.next()) { keyList.add(rs3.getString(4)); } rs3.close(); PreparedStatement ps = conn.prepareStatement("select * from " + tablename); ResultSet rs2 = ps.executeQuery(); ResultSetMetaData rsme = rs2.getMetaData(); int columnCount = rsme.getColumnCount(); //System.out.println("ResultSet对象中的列数" + columnCount); System.out.println("列定义 | 自动编号 | 是否为空 | 主键 "); for (int i = 1; i < columnCount; i++) { System.out.print(rsme.getColumnName(i) + " " + rsme.getColumnTypeName(i) + "(" + rsme.getPrecision(i) + ")"); System.out.print("| " + rsme.isAutoIncrement(i)); System.out.print("| " + rsme.isNullable(i)); System.out.println("| "+ keyList.contains(rsme.getColumnName(i))); } System.out.println(); rs2.close(); ps.close(); } rs1.close(); } catch (Exception e) { e.printStackTrace(); } } }
输出结果:
数据库名:stock 表名: trd_daily_volume 类型: TABLE 列定义 | 自动编号 | 是否为空 | 主键 id BIGINT(20)| true| 0| true stock_code VARCHAR(6)| false| 0| true trade_date DATETIME(19)| false| 1| false trade_status INT(10)| false| 1| false open_price DOUBLE(9)| false| 1| false high_price DOUBLE(9)| false| 1| false low_price DOUBLE(9)| false| 1| false close_price DOUBLE(9)| false| 1| false dnshr_trade BIGINT(12)| false| 1| false
java 读取数据库中表定义
标签:
本文系统来源:http://www.cnblogs.com/panie2015/p/5484902.html
内容总结
以上是互联网集市为您收集整理的java 读取数据库中表定义全部内容,希望文章能够帮你解决java 读取数据库中表定义所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。