java打印數(shù)據(jù)實(shí)現(xiàn)代碼 java打印數(shù)據(jù)實(shí)現(xiàn)代碼怎么寫

JAVA中怎么樣把ArrayList中存的數(shù)據(jù)打印出來?

重寫toString方法,在自定義類中重寫toString方法,組裝自己的格式。

創(chuàng)新互聯(lián)建站主要從事成都做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)大田,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

ArrayList在它的父類AbstractCollection中重寫了toString方法,該方法用Iterator的方式遍歷自己的集合。遍歷時(shí)直接把元素加入到了StringBuilder中,這樣相當(dāng)于調(diào)用元素的toString方法。

舉個(gè)例子:

import?java.util.ArrayList;

import?java.util.List;

public?class?Test5?{

/**

*?@param?args

*/

public?static?void?main(String[]?args)?{

ListMyData?ms?=?new?ArrayListMyData();

ms.add(new?MyData("0"));

ms.add(new?MyData("1"));

ms.add(new?MyData("2"));

ms.add(new?MyData("3"));

System.out.println(ms);

}

}

class?MyData?{

private?String?name;

public?MyData(String?name)?{

this.name?=?name;

}

public?String?toString()?{

return?"數(shù)據(jù)域:"?+?name;

}

}

如何用java打印mysql數(shù)據(jù)庫(kù)

應(yīng)該是連接數(shù)據(jù)庫(kù)吧,這是連接數(shù)據(jù)庫(kù)的步驟: ?

在開發(fā)環(huán)境中加載指定數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序。

接下來的實(shí)驗(yàn)中,使用數(shù)據(jù)庫(kù)MySQL,所以需要下載MySQL支持JDBC的驅(qū)動(dòng)程序(mysql-connector-java-5.1.18-bin.jar)。

2. 開發(fā)環(huán)境是MyEclipse,將下載得到的驅(qū)動(dòng)程序加載進(jìn)開發(fā)環(huán)境中。

3. 在Java程序中加載驅(qū)動(dòng)程序。

在Java程序中,通過 “Class.forName(“指定數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序”)”

方式來加載添加到開發(fā)環(huán)境中的驅(qū)動(dòng)程序,例如Class.forName(“com.mysql.jdbc.Driver”)。

4. 創(chuàng)建數(shù)據(jù)連接對(duì)象:通過DriverManager類創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象Connection。

DriverManager類作用于Java程序和JDBC驅(qū)動(dòng)程序之間,用于檢查所加載的驅(qū)動(dòng)程序是否可以建立連接,然后通過它的getConnection方法,根據(jù)數(shù)據(jù)庫(kù)的URL、用戶名和密碼,創(chuàng)建一個(gè)JDBC

Connection 對(duì)象。代碼如:Connection connection = ?DriverManager.getConnection(“連接數(shù)據(jù)庫(kù)的URL", "用戶名",

"密碼”)。

其中,URL=協(xié)議名+IP地址(域名)+端口+數(shù)據(jù)庫(kù)名稱;用戶名和密碼是指登錄數(shù)據(jù)庫(kù)時(shí)所使用的用戶名和密碼。具體示例創(chuàng)建MySQL的數(shù)據(jù)庫(kù)連接代碼如下:

Connection connectMySQL ?=

DriverManager.geiConnection(“jdbc:mysql://localhost:3306/myuser","root"

,"root" );

5. 創(chuàng)建Statement對(duì)象:Statement 類的主要是用于執(zhí)行靜態(tài) SQL

語句并返回它所生成結(jié)果的對(duì)象。

通過Connection 對(duì)象的 createStatement()方法可以創(chuàng)建一個(gè)Statement對(duì)象。例如:Statement statament =

connection.createStatement(); 具體示例創(chuàng)建Statement對(duì)象代碼如下:Statement statamentMySQL =connectMySQL.createStatement();

6. 調(diào)用Statement對(duì)象的相關(guān)方法執(zhí)行相對(duì)應(yīng)的 SQL

語句:通過execuUpdate()方法用來數(shù)據(jù)的更新,包括插入和刪除等操作,例如向staff表中插入一條數(shù)據(jù)的代碼:

statement.excuteUpdate( "INSERT INTO

staff(name, age, sex,address, depart, worklen,wage)" + " VALUES ('Tom1', 321,

'M', 'china','Personnel','3','3000' ) ") ;

7. 通過調(diào)用Statement對(duì)象的executeQuery()方法進(jìn)行數(shù)據(jù)的查詢,而查詢結(jié)果會(huì)得到

ResulSet對(duì)象,ResulSet表示執(zhí)行查詢數(shù)據(jù)庫(kù)后返回的數(shù)據(jù)的集合,ResulSet對(duì)象具有可以指向當(dāng)前數(shù)據(jù)行的指針。通過該對(duì)象的next()方法,使得指針指向下一行,然后將數(shù)據(jù)以列號(hào)或者字段名取出。如果當(dāng)next()方法返回null,則表示下一行中沒有數(shù)據(jù)存在。使用示例代碼如下:

ResultSet resultSel =

statement.executeQuery( "select * from staff" );

8. 關(guān)閉數(shù)據(jù)庫(kù)連接:使用完數(shù)據(jù)庫(kù)或者不需要訪問數(shù)據(jù)庫(kù)時(shí),通過Connection的close() 方法及時(shí)關(guān)閉數(shù)據(jù)連接。

java(web)打印 通常是怎么實(shí)現(xiàn)的

Web系統(tǒng)中,打印功能一直是個(gè)老大難問題,因此產(chǎn)生了很多第三方的控件,多數(shù)要收費(fèi),而且跟自己的系統(tǒng)結(jié)合有一定的麻煩。系統(tǒng)采用J2EE技術(shù),jsp打印問題同樣存在于OA中。

打印方式有三種:一是不經(jīng)過任何修改,直接調(diào)用javascript中的window.print()打印。二根據(jù)客戶要求的報(bào)表格式,編寫相應(yīng)格式的html,裝載數(shù)據(jù)打印,同樣調(diào)用window.print()打印,只是對(duì)html的格式要求比較高。三是通過客戶提供的word格式,通過xml配置文件與數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行關(guān)聯(lián),自動(dòng)裝載數(shù)據(jù)到word中打印,這里是利用客戶端的word進(jìn)行打印。

第一種幾乎不用編寫程序,最簡(jiǎn)單快捷,這里會(huì)遇到幾個(gè)問題,只能打印表單內(nèi)容,按鈕不希望打印出來;頁(yè)眉頁(yè)腳不想打印出來;IE的titile不想打印出來。

解決辦法:把button放在一個(gè)table或者div里,打印的時(shí)候隱藏,完成后顯示就可以。系統(tǒng)中的javascript打印代碼如下:

function Print() {

var tit = document.title;

document.title = "";

table1.style.display = "none";

window.print();

document.title = tit;

table1.style.display = "";

}

不過只能起到打印的目的,打印的效果一般比較土。不管怎么說,可以最快的讓系統(tǒng)的大部分模塊都有打印的功能。

第二種方式必須根據(jù)每個(gè)報(bào)表的格式進(jìn)行定制html和java程序開發(fā),會(huì)花比較多的時(shí)間。要注意的是對(duì)html中table的樣式控制,在IE中瀏覽看起來很細(xì)的邊框,打印出來有些線條會(huì)比較粗,有些線條又會(huì)比較細(xì),陰陽(yáng)怪氣的很難看。

在table中直接用bordercolor會(huì)讓線條顯得很粗,用bordercolorlight,bordercolordark配合使用可以顯示出秀氣的線條。

html

head/head

body

table border="1" bordercolorlight="red" bordercolordark="#FFFFFF" cellpadding="3" cellspacing="0"

tbody

tr

td姓名/td

td所屬部門/td

/tr

tr

td陳/td

td技術(shù)部/td

/tr

/tbody

/table

/body

/html

比如以上代碼,在IE中看起來線條一樣大小,還是比較秀氣。不要高興的太早,打印出來的效果不象在IE中看到的那樣,邊框雖細(xì),內(nèi)線卻很粗!原因是每個(gè)td都有邊框,td與td的交接處就會(huì)有線條重疊,雖然IE看起來沒有,可是打印的時(shí)候就會(huì)顯示出來。

這個(gè)問題的解決辦法是控制每一個(gè)td的樣式,對(duì)重疊的地方進(jìn)行border-bottom:1px之類的控制。

這個(gè)方案比較消耗精力,而且打印的時(shí)候很難控制分頁(yè),更不能隨時(shí)按照客戶的需要調(diào)整字體邊框顏色等。

第三種方案:從服務(wù)器端生成word、excel等文檔,發(fā)送到瀏覽器進(jìn)行打印

實(shí)現(xiàn)過程:先將需要打印的數(shù)據(jù)導(dǎo)入到word或者excel中,再利用word或者excel的打印功能來實(shí)現(xiàn)web打印。

下面以excel為例實(shí)現(xiàn)如何打印的過程

將網(wǎng)頁(yè)中數(shù)據(jù)導(dǎo)入excel中的方法有很多,這里先介紹一種,利用ActiveX控件的方式,即 Excel.Application, 這個(gè)控件是MS為excel提供的編程接口,在很多種編程語言種都可以通過該接口來操縱excel表格。

下面用javascript腳本來實(shí)現(xiàn)一個(gè)簡(jiǎn)單的例子。

script language = "javascript"

function ExcelPrint() {

var excelApp; //存放Excel對(duì)象

var excelBook; //存放Excel工件簿文件

var excelSheet; //存放Excel活動(dòng)工作表

try {

excelApp = new ActiveXObject("Excel. Application"); //創(chuàng)建Excel對(duì)象}

catch(e) {

alert("請(qǐng)啟用ActiveX控件設(shè)置!");

return;

}

excelBook = excelApp.Workbooks.Add(); //創(chuàng)建Excel工作簿文件

excelSheet = excelBook.ActiveSheet; //激活Excel工作表

var rowLen = printTable.rows.length; //table對(duì)象的行數(shù)

for (var i = 0; i rowLen; i++) {

var colLen = printTable.rows(i).cells.length; //table對(duì)象的列數(shù)

for (var j = 0; j colLen; j++) //為Excel表的單元格賦值

excelSheet.Cells(i + 1, j + 1).value = printTable.rows(i).cells(j).innerText;

} //將表格中的每個(gè)單元格的innerText導(dǎo)入到excel的單元格中

excelApp.Visible = true; //設(shè)置Excel對(duì)象可見

excelSheet.PrintOut(); //打印工作表

excelBook.Close(true); //關(guān)閉文檔

excelApp.Quit(); //結(jié)束excel對(duì)象

excelApp = null; //釋放excel對(duì)象

}

}

/script

注意:

運(yùn)行該程序的前提是 IE要允許對(duì)沒有標(biāo)記為安全的Activex控件進(jìn)行初始化和腳本運(yùn)行。設(shè)置方法如下:

打開控制面板→Internet選項(xiàng)→安全性→自定義級(jí)別→對(duì)沒有標(biāo)記為安全的ActiveX控件進(jìn)行初始化和腳本運(yùn)行→選中啟用,這樣我們的程序就可以運(yùn)行了。如果沒有啟用該ActiveX控件設(shè)置,那么程序在執(zhí)行創(chuàng)建Excel對(duì)象時(shí)會(huì)拋出一個(gè)異常,這時(shí)可以通過catch()語句來捕獲這個(gè)異常,并且做出相應(yīng)的處理。

運(yùn)行該程序必須客戶端安裝了MS EXCEL,否則Activex驅(qū)動(dòng)不了。

編寫java程序?qū)崿F(xiàn)把MySQL數(shù)據(jù)庫(kù)中的student表中數(shù)據(jù)進(jìn)行打印輸出?

首先導(dǎo)入 mysql-connector-java-5.1.45-bin.jar 包7a686964616f31333365633936

代碼如下:

import java.io.*;import java.sql.*; public class App { public static void main(String[] args) { try { Class.forName("com.mysql.jdbc.Driver"); // 數(shù)據(jù)庫(kù)用戶 String user = "root"; // 數(shù)據(jù)庫(kù)密碼 String password = ""; Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_sale", user, password); Statement stmt = conn.createStatement(); // 查詢 , 從數(shù)據(jù)庫(kù) db_sale 的 product 表中查詢 id, name, qty 字段 ResultSet rs = stmt.executeQuery("SELECT id, name, qty FROM product"); // 創(chuàng)建輸出文件 result.txt File file = new File("d://result.txt"); OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(file)); while (rs.next()) { writer.write(String.valueOf(rs.getLong(1)) + "\t"); writer.write(rs.getString(2) + "\t"); writer.write(String.valueOf(rs.getInt(3))); writer.write("\r\n"); //System.out.println(rs.getLong(1)); //System.out.println(rs.getString(2)); //System.out.println(rs.getLong(3)); } writer.flush(); writer.close(); rs.close(); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } }}

網(wǎng)站標(biāo)題:java打印數(shù)據(jù)實(shí)現(xiàn)代碼 java打印數(shù)據(jù)實(shí)現(xiàn)代碼怎么寫
標(biāo)題路徑:http://bm7419.com/article6/ddegpig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、響應(yīng)式網(wǎng)站、動(dòng)態(tài)網(wǎng)站、網(wǎng)站收錄、全網(wǎng)營(yíng)銷推廣、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管