分享
 
 
 

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

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

主要功能,通过读取配置文件,来从数据库里提取字段和值,写入到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:<Name>,<Copyright>,<Author>

#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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有