站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题java读取数据库字段和值,输出到regedit,xml,text,excel,pdf的程序

java读取数据库字段和值,输出到regedit,xml,text,excel,pdf的程序

摘要: java读取数据库字段和值,输出到regedit,xml,text,excel,pdf的程序

主要功能,通过读取配置文件,来从数据库里提取字段和值,写入到regedit,xml,text,excel,pdf中。程序是dos界面的,由于仓促没有写windows界面,如果各位有兴趣,可以改成windows界面的。由于有配置文件的缘故,所以所有的操作不需要改写代码,只需在配置文件中改写就可以了。
主程序:
import java.io.*; import java.util.prefs.*; import java.sql.*; import jxl.*; import jxl.write.*; import java.util.*; import java.util.Properties; import com.lowagie.text.*; import com.lowagie.text.pdf.*; import java.awt.Color;
/* *author:kenshin *effect:from database reading values ,output regedit or text or xml or excel or pdf. *create time:2004/6/8 *modify time:2004/6/9 *copyright:2004 */ public class PrefsDemo {
static Preferences prefsdemo; static String[] field=new String[1000]; static String [] values=new String[1000]; static int account=0,maxCount=0; static String path=null,driver=null,user=null,password=null,odbcname=null; static String txtname=null,xmlname=null,excelname=null,pdfname=null,sql=null; static String author=null,createtime=null,effect=null,version=null;
public static void main(String args[]){ String rnumber=null; int number=0; BufferedReader buf;
//initialize config file Initconfig(); //connection database DBconnection(); //goto enterLoop enterLoop: while(number<=6){ try{ //choice output formatting System.out.println("please choice input formatting!!!"); System.out.print("1:input regedit 2:input xml 3:input text"); System.out.println(" 4:excel 5:pdf 6:all 7:exit"); System.out.print("input a number,not a character:"); //keyword input buf=new BufferedReader(new InputStreamReader(System.in)); rnumber=buf.readLine(); //change "number" type number=Integer.parseInt(rnumber); if(number>7){ System.out.println("please input an number of between 1 to 7 "); number=0; continue enterLoop; } switch(number){ case 1: //output regedit RegeditOutput(); break; case 2: //output xml XmlOutput(); break; case 3: //output text TextOutput(); break; case 4: //output excel ExcelOutput(); break; case 5: //output excel PdfOutput(); break; case 6: //output all RegeditOutput(); XmlOutput(); TextOutput(); ExcelOutput(); PdfOutput(); break; } } catch(IOException e){System.err.println(e);} catch(NumberFormatException e){ System.out.println("please input an number type!"); number=0; continue enterLoop; } } } /************************************************* *effect:initialize config file *input value :null *return value:null *create time:2004/6/11 *edit time:null *************************************************/ static void Initconfig(){
Properties prop = new Properties(); String propFileName = "config.properties"; FileInputStream fis;
try{ fis = new FileInputStream(new File(propFileName)); prop.load(fis); //get config file's values path = prop.getProperty("path"); odbcname = prop.getProperty("odbc"); driver = prop.getProperty("driver"); user = prop.getProperty("user"); password = prop.getProperty("password");
txtname = prop.getProperty("txtname"); xmlname = prop.getProperty("xmlname"); excelname = prop.getProperty("excelname"); pdfname = prop.getProperty("pdfname");
author = prop.getProperty("author"); createtime = prop.getProperty("createtime"); effect = prop.getProperty("effect"); version = prop.getProperty("version");
sql = prop.getProperty("sql");
//close inputstream fis.close();
System.out.println("*************************"); System.out.println("*config read successfull*"); System.out.println("*************************"); } catch(IOException e){System.err.println(e);} } /************************************************* *effect:connection database *input value :null *return value:null *create time:2004/6/9 *edit time:null *************************************************/ static void DBconnection(){ //jdbc-odbc variable initialize Connection con=null; Statement stm=null; ResultSet rs=null;
//jdbc-odbc bridge try{ Class.forName(driver); con=DriverManager.getConnection(odbcname,user,password); stm=con.createStatement(); rs=stm.executeQuery(sql);
//get columncount values account=rs.getMetaData().getColumnCount();
System.out.println("*************************"); System.out.println("*DB connect successfull *"); System.out.println("*************************"); //get database ColumnName for(int i=1;i<=account;i++){ field[i]=rs.getMetaData().getColumnName(i); } while(rs.next()){ for(int j=1;j<=account;j++){ ++maxCount; values[maxCount]=rs.getString(field[j]); System.out.println(values[maxCount]); } } //close database rs.close(); stm.close(); con.close(); } catch(Exception e){ System.err.println(e); } } /************************************************* *effect:output regedit *input value :null *return value:null *create time:2004/6/9 *edit time:null *************************************************/ static void RegeditOutput(){ prefsdemo = Preferences.userRoot().node("/com/sunway/spc");
//wirte regedit prefsdemo.put("author",author); prefsdemo.put("createtime",createtime); prefsdemo.put("effect",effect); prefsdemo.put("version",version);
System.out.println("regedit create successfull!"); } /************************************************* *effect:output xml *input value :null *return value:null *create time:2004/6/9 *edit time:null *************************************************/ static void XmlOutput(){ //write xml try{ File myfile = new File(path+xmlname); if(!(myfile.exists())){ myfile.createNewFile(); } // write file FileOutputStream fos = new FileOutputStream(path+xmlname); prefsdemo.exportNode(fos); } catch (Exception e){ System.err.println("Cannot export nodes: " + e); } System.out.println("xml create successfull "); } /************************************************* *effect:output text *input value :null *return value:null *create time:2004/6/9 *edit time:null *************************************************/ static void TextOutput(){
//field length int length1[]=new int[1000]; //values length int length2[]=new int[1000]; String space=" "; String str1="-------------------------"; String str2[]=new String[1000]; String str3[]=new String[1000]; //check "/n" int q=1; //initialize str1[] str2[] for(int i=1;i<=maxCount;i++){ str2[i]=""; str3[i]=""; }
try{ //create file File myfile = new File(path+txtname); if(!(myfile.exists())){ myfile.createNewFile(); } // write file FileWriter fw=new FileWriter(path+txtname); for(int i=1;i<=maxCount;i++){ if(i<=account){ length1[i]=25-field[i].length(); //account length2 length for(int j=1;j<=length1[i];j++){ str2[i]=str2[i]+" "; } } length2[i]=25-values[i].length(); //account length3 length for(int j=1;j<=length2[i];j++){ str3[i]=str3[i]+" "; } } //write field for(int i=1;i<=account;i++){ fw.write(field[i]); fw.write(str2[i]+space); } //write "-" fw.write("\n"); for(int i=1;i<=account;i++){ fw.write(str1+space); } //write values fw.write("\n"); for(int i=1;i<=maxCount;i++){ fw.write(values[i]+str3[i]+space); if(i==account*q){ fw.write("\n"); q*=2; } } fw.close(); } catch(FileNotFoundException e){System.err.println(e);} catch(IOException e){e.printStackTrace();} System.out.println("text create successfull "); } /************************************************* *effect:output excel *input value :null *return value:null *create time:2004/6/9 *edit time:2004/6/10 *************************************************/ static void ExcelOutput(){
//label1:field label2:values Label label1=null,label2=null; int result=0,rows=0; try{ //create an new file File myfile = new File(path+excelname); if(!(myfile.exists())){ myfile.createNewFile(); System.out.println("an new excel create successful"); } //create an new excel WritableWorkbook workbook = Workbook.createWorkbook(myfile); //use first excel's sheet WritableSheet sheet = workbook.createSheet("record", 0);
// add table title and values for(int i=1;i<=account;i++){ //add table title label1 = new Label(i-1, 0, field[i]); sheet.addCell(label1); } //account rows values result=maxCount/account; for(int i=1;i<=result;i++){ for(int m=1;m<=account;m++){ rows++; label2=new Label(m-1,i,values[rows]); sheet.addCell(label2); } }
workbook.write(); workbook.close(); } catch(Exception e){System.err.println(e);} System.out.println("excel create successfull "); } /************************************************* *effect:output pdf file *input value :null *return value:null *create time:2004/6/11 *edit time:null *************************************************/ static void PdfOutput(){ Document document; Rectangle pageRect;
try{ document=new Document(PageSize.A4, 50, 50, 100, 50); pageRect=document.getPageSize(); PdfWriter.getInstance(document, new FileOutputStream(path+pdfname));
HeaderFooter header = new HeaderFooter(new Phrase("student information"), false); header.setBorder(2); header.setAlignment(Element.ALIGN_RIGHT); document.setHeader(header);
//add page HeaderFooter footer = new HeaderFooter(new Phrase("the"),new Phrase("page")); footer.setAlignment(Element.ALIGN_CENTER); footer.setBorder(1); document.setFooter(footer);
//open document document.open();
//create table Table table = new Table(account); table.setDefaultVerticalAlignment(Element.ALIGN_MIDDLE); table.setBorder(Rectangle.NO_BORDER);
int hws[] = new int[account]; for(int i=1;i<=account;i++){ hws[i-1]=20; }
table.setWidths(hws); table.setWidth(100); //add field for(int i=1;i<=account;i++){ table.addCell(new Phrase(field[i])); } //add values for(int i=1;i<=maxCount;i++){ table.addCell(new Phrase(values[i])); }
//add table to pdf file document.add(table); //close pdf file document.close(); } catch(Exception e){System.out.println(e);} System.out.println("pdf create successfull "); } }
******************************************************************* 配置文件 [author information] author=kenshin createtime=2004/6/08 effect=from database reading values ,output regedit or text or xml or excel or pdf version=0.1
[date] #date date=2004
#saving path path=f:\\kenshin\\
[database odbc information] #table:Info #field:,,
#odbc name odbc=jdbc:odbc:xml
#driver driver=sun.jdbc.odbc.JdbcOdbcDriver
#user user=""
#password password=""
#database select statement sql=select * from Info
[argument] #text file name txtname=Info.txt
#xml file name xmlname=Info.xml
#excel file name excelname=Info.xls
#pdfname file name pdfname=info.pdf
↑返回目录
前一篇: Java对象序列化(整理篇)
后一篇: Java读取BMP格式图片(源代码,转)