转载

JSP导出Oracle数据表的操作浅谈

JSP导出Oracle数据表是一个在开发应用时的常用的操作,那么如何实现呢?现在开始我们的程序介绍,首先下面的程序expddl.jsp可导出Oracle数据表进行数据库的用户下的所有数据表的DDL.

JSP导出的Oracle数据表之expddl.jsp:

  1. %@ page contentType="text/html; charset=gb2312" language="java" %  
  2. %@ page import = "java.sql.*" %  
  3. %@ page import = "oracle.jdbc.OracleDatabaseMetaData" %  
  4. %@ page import = "oracle.jdbc.OracleResultSetMetaData" %  
  5. %@ page import = "javax.sql.*,javax.naming.Context" %  
  6. %@ page import = "javax.naming.InitialContext" %  
  7. div align="center"  
  8. %  
  9. DataSource ds = null;  
  10.  
  11. Context ic = new InitialContext();  
  12. ds = (DataSource) ic.lookup("java:comp/env/jdbc/mydb");  
  13.  
  14. Connection conn = ds.getConnection();  
  15.  
  16. OracleDatabaseMetaData dmd = (OracleDatabaseMetaData) conn.getMetaData();  
  17. String us = odmd.getUserName();  
  18. String[] types = new String[1];  
  19. types[0] = "TABLE";  
  20. ResultSet rs = odmd.getTables(null,us,"%",types);  
  21. while(rs.next()) {  
  22.  

对JSP导出的Oracle数据表进行取表名

  1. String tname = rs.getString(3);  
  2. %  
  3. div align="center"表名:%= tname%/div  
  4. table width="483" height="50" border="1" cellpadding="2" cellspacing="0"  
  5. tr  
  6. tddiv align="center"序号/div/td  
  7. tddiv align="center"标识/div/td  
  8. tddiv align="center"类型/精度/div/td  
  9. tddiv align="center"标识说明/div/td  
  10. /tr  
  11. %  
  12. Statement st = conn.createStatement();  
  13. ResultSet rs1 = st.executeQuery("select * from " + tname);  
  14. OracleResultSetMetaData rmd = (OracleResultSetMetaData) rs1.getMetaData();  
  15.  

对JSP导出的Oracle数据表提取取列总数

  1. int colcnt = ormd.getColumnCount();  
  2.  

对JSP导出的Oracle数据表提取列序号

  1. int num = 1;  
  2. for(int j=0;jcolcnt;j++) {  
  3. String s = ormd.getColumnTypeName(j+1).toLowerCase();  
  4.  
  5. 对Oracle数据表只处理varchar2 char date number类型(根据需要添加相应的处理)  
  6.  
  7. if(s.equals("varchar2") || s.equals("char") || s.equals("date") || s.equals("number")) {  
  8. if(s.equals("varchar2") || s.equals("char"))  
  9. ss = s + "(" + ormd.getColumnDisplaySize(j+1) + ")";  
  10. if(s.equals("number"))  
  11. ss = s + "(" + ormd.getPrecision(j+1) + "," + ormd.getScale(j+1) + ")";  
  12. %  
  13. tr  
  14. td width="40"div align="center"%= num++ %/div/td  
  15. td width="98"%=ormd.getColumnName(j+1)%/tdtd width="144"%= s %/td  
  16. td width="173" /td /tr  
  17. %  
  18. }  
  19. }  
  20. rs1.close();  
  21. st.close();  
  22. %  
  23. /table  
  24. br  
  25. %  
  26. }  
  27. rs.close();  
  28. conn.close();  
  29. %  
  30. /div   
  31.  

通过上面对JSP导出的Oracle数据表的操作,你是否对于这个程序的实现有了自己的思路呢?

正文到此结束
Loading...