Java获取oracle字段注释_java读取ORACLE数据库表字段信息以及注释信息

最近在做编程工具,便于快速开发程序,用过太多框架,但是发觉只有自己制作代码工具才开发起来痛快。

这个类是用来读取oracle数据库表结构的,也包括列的注释,对于生成代码有很好的帮助。

1.[文件] OracleTable.java ~ 3KB     下载(72)

package db;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

/***

* 2014-07-21日:

* oracle数据库, 表结构查询 ,字段信息查询,字段注释查询

* 表字段查询 all_tab_columns

* 表字段注释查询 all_col_comments

* @author 王华荣

*

*/

public class OracleTable {

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

private static final String DATABASE_URL = "jdbc:oracle:thin:@192.168.1.10:1521:orcl";

private static final String DATABASE_USER = "dev";

private static final String DATABASE_PASSWORD = "dev";

private static Connection con = null;

public static Connection getConnection() {

try {

Class.forName(DRIVER_CLASS);

con=DriverManager.getConnection(DATABASE_URL,DATABASE_USER,DATABASE_PASSWORD);

return con;

} catch (Exception ex) {

System.out.println("2:"+ex.getMessage());

}

return con;

}

/***

* 打印test

* @throws SQLException

*/

public static void sysoutStrTablePdmCloumns(String Table,String Owner) throws SQLException{

getConnection();

List> columns = new ArrayList>();

try{

Statement stmt = con.createStatement();

String sql=

"select "+

" comments as \"Name\","+

" a.column_name \"Code\","+

" a.DATA_TYPE as \"DataType\","+

" b.comments as \"Comment\","+

" decode(c.column_name,null,'FALSE','TRUE') as \"Primary\","+

" decode(a.NULLABLE,'N','TRUE','Y','FALSE','') as \"Mandatory\","+

" '' \"sequence\""+

" from "+

" all_tab_columns a, "+

" all_col_comments b,"+

" ("+

" select a.constraint_name, a.column_name"+

" from user_cons_columns a, user_constraints b"+

" where a.constraint_name = b.constraint_name"+

" and b.constraint_type = 'P'"+

" and a.table_name = '"+Table+"'"+

" ) c"+

" where "+

" a.Table_Name=b.table_Name "+

" and a.column_name=b.column_name"+

" and a.Table_Name='"+Table+"'"+

" and a.owner=b.owner "+

" and a.owner='"+Owner+"'"+

" and a.COLUMN_NAME = c.column_name(+)" +

"order by a.COLUMN_ID";

System.out.println(sql);

ResultSet rs = stmt.executeQuery(sql);

while (rs.next()){

HashMap map = new HashMap();

map.put("Name", rs.getString("Name"));

map.put("Code", rs.getString("Code"));

map.put("DataType", rs.getString("DataType"));

map.put("Comment", rs.getString("Comment"));

map.put("Primary", rs.getString("Primary"));

map.put("Mandatory", rs.getString("Mandatory"));

columns.add(map);

}

}

catch (SQLException e){

e.printStackTrace();

}finally{

con.close();

}

}

public static void main(String[] args) throws SQLException{

sysoutStrTablePdmCloumns("CT_INFO_CONTRACT_BORROW","DEV");

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347734.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(3.2)HarmonyOS鸿蒙双击事件

跟单击事件类似,双击事件也有4种写法,这里采用当前类作为实现类这种写法,其他写法可以参见《单击事件的4种写法》。不同的是双击事件需要的是Component.DoubleClickedListener。 实现步骤: 1.通过id找到组件。 2.给需要的组件设置双击事件。…

java文件和xml文件_用Java分割大型XML文件

java文件和xml文件上周,我被要求用Java编写一些东西,该东西能够将一个30GB的XML文件拆分为可配置文件大小的较小部分。 文件的使用者将是一个中间件应用程序,该应用程序在XML的大尺寸方面存在问题。 在幕后,它使用某种DOM解析技术…

oracle java 并发_【转】JAVA并发教程(ORACLE官网资料)

本文是Oracle官方的Java并发相关的教程,感谢并发编程网的翻译和投递。计算机的使用者一直以为他们的计算机可以同时做很多事情。他们认为当其他的应用程序在下载文件,管理打印队列或者缓冲音频的时候他们可以继续在文字处理程序上工作。甚至对于单个应用…

(3.3)HarmonyOS鸿蒙长按事件

跟单击事件类似,长按事件也有4种写法,这里采用当前类作为实现类这种写法,其他写法可以参见《单击事件的4种写法》。 实现步骤: 1.通过id找到组件。 2.给需要的组件设置长按事件。 3.本类实现LongClickedListener接口。 4.重写onLongClicked方…

部署Spring Boot Angular App(Maven和Tomcat)的4种方法

在上一篇有关Spring Boot angular 5的文章中 ,我们使用Spring Boot angular 5实现了一个完整的堆栈端到端Web应用程序。在本文中,我们将讨论在tomcat上部署Spring Boot和Angle App的不同方法。 我们将创建一个具有后端(服务器)和前…

java中true转换为int_在Java中将字节转换为int的最优雅的方式

示例代码:int a 255;byte b (byte) a;int c b & 0xff; // Here be dragonsSystem.out.println(a);System.out.println(b);System.out.println(c);所以我们从一个整数值255开始,将它转换成一个字节(变为-1),然后使用魔术公式将其转换成…

(3.4)HarmonyOS鸿蒙滑动事件三个动作

接口名:TouchEventListener 滑动事件里面分为三个动作:按下,移动,抬起 PRIMARY_POINT_DOWN:按下 POINT_MOVE:移动 PRIMARY_POINT_UP:抬起 手机坐标: 手机左上角的点为原点。向右为…

计算机二级web题目(8.3)--简单应用题2

前些天发现了一个巨牛的人工智能学习电子书,通俗易懂,风趣幽默,无广告,忍不住分享一下给大家。(点击跳转人工智能学习资料) 1.在考生文件夹下的Web3目录中,存有3.htm文件,该文件不完…

计算机二级web题目(8.4)--综合应用题2

前些天发现了一个巨牛的人工智能学习电子书,通俗易懂,风趣幽默,无广告,忍不住分享一下给大家。(点击跳转人工智能学习资料) 1.在考生文件夹下的Web5目录中,存有5.htm文件,该文件不完…

创建存储,修改存储_安全地创建和存储密码

创建存储,修改存储几乎每次涉及用户配置文件时,都必须管理用户凭据,从而能够创建和存储用户密码。 通常应该使用哈希密码和盐分密码来准备数据库公开和通过使用Rainbow表进行哈希逆转。 但是,找到以明文形式存储的密码并不少见(很…

mysql把一行保存到另一个表_MYSQL:如何复制整个行从一个表到另一个在MySQL与第二个表有一个额外的列?...

为了完善Zed的答案,并回答你的评论:INSERT INTO dues_storage SELECT d.*, CURRENT_DATE() FROM dues d WHERE id 5;见TJ Crowder的评论最安全的方法是完全指定插入和提取的列。 (对于应用程序)没有任何保证,这些将是您认为可能的顺序。inse…

Spring Security中的SecurityContext和SecurityContextHolder是什么?

SecurityContext和SecurityContextHolder是Spring Security的两个基本类。 SecurityContext用于存储当前经过身份验证的用户的详细信息,也称为原理。 因此,如果必须获取用户名或任何其他用户详细信息,则需要首先获取此SecurityContext 。 Sec…

codemirror java代码_codemirror使用(示例代码)

JS使用使用bower下载javascript bower i codemirror引入样式文件html 引入js文件html 文档结构html 初始化javascript // mode: "text/javascript", // mode: "text/css" window.onload function(){ var myCodeMirror CodeMirror.fromTextArea(document.…

(3.5)HarmonyOS鸿蒙上下左右方向滑动

需要获取按下时候的坐标和松开时候的坐标,并将两者进行比较。 ①MainAbilitySlice.java文件 可以根据使用情况做修改代码中判断处的限制偏差范围。 package com.example.yeman.slice;import com.example.yeman.ResourceTable; import ohos.aafwk.ability.Ability…

java selenium用js点击_Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?...

小编典典你可以通过以下任一过程解决它们:1.由于存在JavaScript或AJAX调用而无法单击元素尝试使用ActionsClass:WebElement element driver.findElement(By.id("navigationPageButton"));Actions actions new Actions(driver);actions.moveT…

(3.5)HarmonyOS鸿蒙多按钮点击事件

多按钮的点击事件其实与只有一个是类似的,只不过要在调用 onClick()时进行判断,判断获取到的component是谁即可。 package com.example.yeman.slice;import com.example.yeman.ResourceTable; import ohos.aafwk.ability.Ability…

sql 注射_基本注射/资格赛,范围

sql 注射这是上周解决的DI / CDI基础知识的延续-在本文中,我将讨论基础注入,限定词和范围。 在上一个主题中,我们提供了有关DI / CDI概念的大量信息,我们还讨论了如何使用注释加载这些bean或类-这构成了对象的组成并创建了关于如…

计算机二级web题目(9.1)--综合选择题3

前些天发现了一个巨牛的人工智能学习电子书,通俗易懂,风趣幽默,无广告,忍不住分享一下给大家。(点击跳转人工智能学习资料) 1下列叙述中正确的是(D)。 A、栈是"先进先出"的线性表 B、队列是"…

java小程序 2048_微信小程序之游戏2048

主要用来锻炼逻辑思维能力image.png可以选模式image.png这里面主要解决的问题是:1.判断滑动方向//在滑动块级绑定滑动开始和滑动结束的方法很原始的方法,startFn时保存开始的(x,y),endFn时保存结束的(x1,y2),根据这四个参数 判断方向,算法在方…

现场故事:从Log4J迁移到Log4J2

通过从应用程序中学习企业APM产品,发现更快,更高效的性能监控。 参加AppDynamics APM导览! 与许多Java应用程序一样,AppDynamics Java代理广泛使用日志记录。 多年来,我们一直使用Log4J作为日志记录框架。 虽然Log4J的…