① java代碼怎樣將oracle資料庫中數據下載本地,為.txt文件或者.excel文件。
第一個類:
package totabel.action;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
import topdf.TableToPdf;
import totabel.view.TabelData;
import totabel.xls.ExcelDemo;
public class TableAction implements ActionListener {
TabelData data;
public TableAction(TabelData data) {
this.data = data;
}
public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand();
if ("添加".equals(str)) {
data.addData();
} else if ("導出到Excel".equals(str)) {
ExcelDemo demo = new ExcelDemo();
demo.method(data);
} else if ("刪除".equals(str)) {
if (data.getRow() != -1) {
data.delRow();
} else {
JOptionPane.showMessageDialog(null, "請選擇要刪除的行!");
}
}else if("從Excel導入".equals(str)){
data.getXlsInfo();
}else if("從Excel導入到資料庫".equals(str)){
data.toDb();
}else if("從table導出到pdf".equals(str)){
TableToPdf pdf=new TableToPdf();
pdf.newPage(data);
}else if("計算學分".equals(str)){
data.getXlsInfoToCredit();
}
}
}
第二個類:資料庫連接
package totabel.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcConnection {
private static JdbcConnection con;
public static JdbcConnection getCon() {
if (con == null) {
con = new JdbcConnection();
}
return con;
}
public Connection getConnection() {
Connection connection=null;
try {
Class.forName("oracle.jdbc.OracleDriver");
String url = "jdbc:oracle:thin:@127.0.0.1:1521:oracle";
String user = "scott";
String password = "tiger";
connection = DriverManager.getConnection(url, user,
password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
// public static void main(String[] args) {
// JdbcConnection connection=new JdbcConnection();
// connection.getConnection("asd", "99");
// }
}
第三個類:主類(入口)
package totabel.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcConnection {
private static JdbcConnection con;
public static JdbcConnection getCon() {
if (con == null) {
con = new JdbcConnection();
}
return con;
}
public Connection getConnection() {
Connection connection=null;
try {
Class.forName("oracle.jdbc.OracleDriver");
String url = "jdbc:oracle:thin:@127.0.0.1:1521:oracle";
String user = "scott";
String password = "tiger";
connection = DriverManager.getConnection(url, user,
password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
// public static void main(String[] args) {
// JdbcConnection connection=new JdbcConnection();
// connection.getConnection("asd", "99");
// }
}
第四個類:
package totabel.xls;
import java.io.File;
import java.io.IOException;
import java.util.Vector;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JOptionPane;
import totabel.view.TabelData;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
public class ExcelDemo {
/**
*
* @param args
*/
private Vector title = new Vector();
private Vector[] array;
// public static void main(String[] args) {
// ExcelDemo demo = new ExcelDemo();
// demo.getXlsInfo();
//
// }
public void method(TabelData table) {
int row = table.getRowSize();
int column = table.getColumnSize();
WritableWorkbook book = null;
Vector title = table.setTitle();
Object[] str = title.toArray();
try {
book = Workbook.createWorkbook(new File("test.xls"));
WritableSheet sheet = book.createSheet("成績表", 0);
for (int i = 0; i < str.length; i++) {
sheet.addCell(new Label(i, 0, (String) str[i]));
}
for (int i = 1; i < row + 1; i++) {
for (int j = 1; j < column + 1; j++) {
sheet.addCell(new Label(j - 1, i, table.getTableInfo(i - 1,
j - 1)));
}
}
book.write();
JOptionPane.showMessageDialog(null, "導出完成!");
} catch (IOException e) {
e.printStackTrace();
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
} finally {
try {
book.close();
} catch (WriteException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 輸出Excel的數據到表單
*
* @return
*/
public Vector getXlsInfo() {
Vector v = new Vector();
jxl.Workbook rwb = null;
int index = 0;
try {
rwb = jxl.Workbook.getWorkbook(new File("test.xls"));
Sheet[] sheet = rwb.getSheets();
for (int i = 0; i < sheet.length; i++) {
int rs = sheet[i].getRows();
array = new Vector[rs - 1];
for (int j = 1; j < rs; j++) {
Cell[] cell = sheet[i].getRow(j);
Vector info = new Vector();
for (int k = 0; k < cell.length; k++) {
info.add(cell[k].getContents());
}
array[index] = info;
index++;
v.add(info);
}
Cell[] titleCell = sheet[i].getRow(0);
for (int j = 0; j < titleCell.length; j++) {
title.add(titleCell[j].getContents());
}
}
} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
rwb.close();
}
return v;
}
public Vector getXlsInfoToCredit() {
Vector v = new Vector();
jxl.Workbook rwb = null;
try {
rwb = jxl.Workbook.getWorkbook(new File("d:/test/信科0821(南遷).xls"));
Sheet[] sheet = rwb.getSheets();
for (int i = 0; i < sheet.length; i++) {
int rs = sheet[i].getRows();
array = new Vector[rs - 1];
for (int j = 1; j < rs; j++) {
Cell[] cell = sheet[i].getRow(j);
Vector info = new Vector();
for (int k = 0; k < cell.length; k++) {
// if(){
Pattern p = Pattern.compile("[0-9]{1,}");
Matcher m = p.matcher(cell[k].getContents());
if (m.matches()) {
int score = Integer.valueOf(cell[k].getContents());
float result = getScore(score);
info.add(result);
} else {
info.add(cell[k].getContents());
}
}
v.add(info);
}
Cell[] titleCell = sheet[i].getRow(0);
for (int j = 0; j < titleCell.length; j++) {
title.add(titleCell[j].getContents());
}
}
} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
rwb.close();
}
return v;
}
public float getScore(int n) {
float score = n;
if (n < 60) {
score = 0;
return score;
} else {
if (n >= 60 && n <= 63) {
score = (float) 1.0;
} else if (n >= 64 && n <= 67) {
score = (float) 1.3;
} else if (n >= 68 && n <= 71) {
score = (float) 1.7;
} else if (n >= 72 && n <= 75) {
score = (float) 2.0;
} else if (n >= 76 && n <= 79) {
score = (float) 2.3;
} else if (n >= 80 && n <= 83) {
score = (float) 2.7;
} else if (n >= 84 && n <= 87) {
score = (float) 3.0;
} else if (n >= 88 && n <= 91) {
score = (float) 3.3;
} else if (n >= 92 && n <= 95) {
score = (float) 3.7;
} else if (n >= 96 && n <= 100) {
score = (float) 4.0;
}
return score;
}
}
public Vector getTitle() {
// getXlsInfo();
return title;
}
public Vector[] getArray() {
getXlsInfo();
return array;
}
}
因為時間問題就沒有再寫了,上面是我以前做的,不懂就q我
② 用java設計一個資料庫管理系統
import java.sql.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
//import java.awt.event.*;
public class DisplayDemo extends JFrame
//implements ActionListener
{
// private String dbURL="jdbc:microsoft:sqlserver://202.115.26.181:1433"; // 資料庫標識名
private String user="devon"; // 資料庫用戶
private String password="book"; // 資料庫用戶密碼
private JTable table;
private JButton ok,canel;
public DisplayDemo(){
super("顯示資料庫查詢結果"); //調用父類構造函數
String[] columnNames={"用戶名","年齡","性別","Email"}; //列名
Object[][] rowData=new Object[5][4]; //表格數據
ok=new JButton("確定");
canel=new JButton("取消");
// ok.addActionListener(this);
// canel.addActionListener(this);
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:example","sa","");
// Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //載入驅動器
// Connection con=DriverManager.getConnection(dbURL,user,password); //獲取連接
String sqlStr="select * from users"; //查詢語句
PreparedStatement ps=con.prepareStatement(sqlStr); //獲取PreparedStatement對象
ResultSet rs=ps.executeQuery(); //執行查詢
String name,sex,email; //查詢結果
int age;
int count=0;
while (rs.next()){ //遍歷查詢結果
rowData[count][0]=rs.getString("name"); //初始化數組內容
rowData[count][1]=Integer.toString(rs.getInt("age"));
rowData[count][2]=rs.getString("sex");
rowData[count][3]=rs.getString("email");
count++;
}
con.close(); //關閉連接
}
catch(Exception ex){
ex.printStackTrace(); //輸出出錯信息
}
Container container=getContentPane(); //獲取窗口容器
//container.setLayout(null);
container.add(ok);container.add(canel); ok.setBounds(10,120,70,20);
canel.setBounds(100,120,70,20);
table=new JTable(rowData,columnNames); //實例化表格
table.getColumn("年齡").setMaxWidth(25); //設置行寬
container.add(new jscrollPane(table),BorderLayout.CENTER); //增加組件
setSize(300,200); //設置窗口尺寸
setVisible(true); //設置窗口可視
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關閉窗口時退出程序
}
public static void main(String[] args){
new DisplayDemo();
}
}
-----------------
這是其中一個例子 你照著上面做就可以了
③ java連接SqlServer2008的資料庫連接池怎麼使用
java連接SqlServer2008的資料庫連接池使用:
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Vector;
/**資料庫連接池的公共類 **/
public class ConnectionPool {
private Vector<Connection> pool;//聲明集合,裡面只能是放Connection
/**
* 聲明要的東西
*/
private String url = "jdbc:sqlserver://localhost:1433; database=ajax";
private String username = "sa";
private String password = "sa123";
private String driverClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
/**
* 連接池的大小,也就是連接池中有多少個資料庫連接
*/
private int poolSize = 5;
private static ConnectionPool instance = null;
/**
* 私有的構造方法,禁止外部創建本類的對象,要想獲得本類的對象,通過<code>getIstance</code>方法
* 使用了設計模式中的單子模式
*/
private ConnectionPool() {
init();
}
/**
* 連接池初始化方法,讀取屬性文件的內容 建立連接池中的初始連
*/
private void init() {
pool = new Vector<Connection>(poolSize);
//readConfig();
addConnection();
}
/**
* 返回連接到連接池
*/
public synchronized void release(Connection conn) {
pool.add(conn);
}
/**
* 關閉連接池中的所有資料庫連接
*/
public synchronized void closePool() {
for (int i = 0; i < pool.size(); i++) {
try {
((Connection) pool.get(i)).close();
} catch (SQLException e) {
e.printStackTrace();
}
pool.remove(i);
}
}
/**
* 返回當前連接池的對象
*/
public static ConnectionPool getInstance() {
if (instance == null) {
instance = new ConnectionPool();
}
return instance;
}
/**
* 返回連接池中的一個資料庫連接
*/
public synchronized Connection getConnection() {
if (pool.size() > 0) {
Connection conn = pool.get(0);
pool.remove(conn);
return conn;
} else {
return null;
}
}
/**
* 在連接池中創建初始設置的的資料庫連接
*/
private void addConnection() {
Connection conn = null;
for (int i = 0; i < poolSize; i++) {
try {
Class.forName(driverClassName);
conn = java.sql.DriverManager.getConnection(url, username,
password);
pool.add(conn);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
④ Java程序資料庫表設計
看需求,如果只需要區分三種角色的話一個表就夠了,加個識別欄位
如果角色有特殊的用處,比如相應的角色可以後台設置角色能操作的許可權,比如看那些頁面之類的,就兩個表,用戶表關聯角色id,角色表裡放相應的角色信息
如果不是所有人都有角色的話,需要第三個表,用戶_角色關聯表
一般情況下都是兩個表
⑤ 怎樣從資料庫輸出數據到文件中,再對該文件進行下載 java
不管你來用什麼東東,你下文自件總得給出文件地址或者文件參數再下載,所以本質上沒太多區別。
你的邏輯是從資料庫拿數據然後生成文件,然後再下載;
首先你得把數據拿出來,然後用io類生成臨時文件,如果為了偷懶,想直接給個url就完了,那就把文件生在工程根目錄下比如:proname/downtemp/1234.doc
然後把絕對路徑給出,就可以下載了 ,這中間可能要跳轉一下,因為你是臨時產生,不是直接下載。
⑥ java中怎麼寫一個公共的查詢資料庫方法
package cn.db;//這個是自己建的包,這樣子方便用的時候就可以通過包名來確定路徑了
import java.sql.*;
import java.util.ArrayList;
public class DbDao {
Connection con=null;//連接
Statement stm=null;//執行SQL語句
ResultSet rs=null;//保存查詢結果
public void connectDb(){
try {
Class.forName("com.mysql.jdbc.Driver");//這句固定的
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydb","root","root");//其中的mydb是資料庫名,後面兩個root分別是資料庫用戶名和密碼(我用的是MySQL資料庫)
stm = con.createStatement();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public ArrayList executeQuery(String sql){//這個方法是用來查詢資料庫的,並且將查詢的數據放到鏈表中
ArrayList list = new ArrayList();
try {
rs = stm.executeQuery(sql);
while(rs.next()){
//這里寫入你要查詢的數據,得由你自己寫了。
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
public void closeDb(){//關閉資料庫
try {
if(rs!=null) rs.close();
if(stm!=null) stm.close();
if(con!=null) con.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
⑦ Java項目案例分析的圖書簡介
本書向讀者介紹了6個實用項目和兩個畢業設計,實用項目包括超市管理系統、物資管理系統、網上商城系統、英漢雙語詞典、學生成績管理系統、彩票預測系統;畢業設計包括進銷存管理系統和圖書館管理系統。本書從軟體工程的角度出發,按照項目的開發順序,系統、全面地介紹了Java項目開發的流程。從項目概述、資料庫設計、公共類設計到主要模塊設計,每一過程都進行了詳細地介紹。
本書提供了大量的自學視頻、源程序、素材,提供了相關的模塊庫、案例庫、素材庫、題庫等多種形式的輔助學習資料,還提供迅速及時的微博、QQ、論壇等技術支持。
本書內容詳盡、實例豐富,非常適合作為零基礎學習人員的學慣用書和大中專院校師生的學習教材,也適合作為相關培訓機構的師生和軟體開發人員的參考資料。
⑧ 用java和資料庫做一個學生信息管理系統(java 資料庫)
我也是計算機專業畢業的,你這個題目應該是期末作業之類的。你可以上碼雲上找開源項目,運氣好的話相關的文檔也比較全。
但你要是想購買一個現成的,我可以幫忙。
⑨ 想要java軟體安裝包,有哪位朋友有嗎
軟體介紹
java se development kit 9 64位,簡稱為java9 64位,是由oracle公司官方推出的一款Java語言的軟體開發工具包,面向Java開發人員,包括一個完整的JRE以及用於開發、調試和監視Java應用的工具,是整個Java的核心,其中包括了Java運行環境(Java Runtime EnvirnmeJava開發工具和Java基礎類庫源代碼)。java se 9是Java Platform的新更新,此版本包括期待已久的新特性,如Java Platform模塊化、性能提升、支持新標准以及許多其他改進。其中Java Platform模塊化是java se development kit 9的最大特色,在引入了模塊系統之後,JDK 被重新組織成 94 個模塊。Java應用可以通過新增的jlink 工具,創建出只包含所依賴的JDK模塊的自定義運行時鏡像,這樣可以極大的減少Java 9運行時環境的大小,使得JDK可以在更小的設備中使用。
所需工具:點擊下載java se development kit 9
10、支持Unicode 8.0。JDK 8支持Unicode 6.2。
Unicode的6.3,7.0和8.0標准相結合引入10555個字元,29個腳本,和42塊,所有這些在JDK 9支撐。
java9 64位安裝教程:
1、軟體下載解壓完成後,點擊jdk-9_windows-x64打開軟體包,等待片刻後點擊下一步開始安裝軟體。
2、選擇安裝組件和安裝路徑。
3、確定軟體安裝目錄。
4、java9 64位安裝完成。
更新日誌
java se development kit 9是一個主要的功能版本,以下總結了Java SE 9和JDK 9(Oracle的Java SE 9的實現)中的功能和增強功能。
A、關鍵變化:
一、Java平台模塊系統
介紹一種新的Java編程組件,這個模塊是一個有名的,自描述的代碼和數據集合。這個模塊系統:
1、引入了一個新的可選階段,即鏈接時間,該時間在編譯時間和運行時間之間,在此期間可以將一組模塊組裝並優化為自定義運行時映像; 看到jlink在工具Java平台,標准版工具參考。
2、將選項添加到工具javac,jlink以及java可以指定模塊路徑的位置,這些模塊路徑定位了模塊的定義。
3、介紹模塊化的JAR文件,它是一個JAR文件,mole-info.class在其根目錄中有一個文件。
4、介紹JMOD格式,除了可以包含本地代碼和配置文件之外,它是與JAR類似的打包格式; 看到這個jmod工具。
二、JEP 223:新的版本字元串計劃
提供簡化的版本字元串格式,有助於清楚地區分主要,次要,安全和修補程序更新版本。
B、新增功能
1、使用安裝程序的用戶界面啟用或禁用Web部署
提供在安裝程序的歡迎頁面中啟用或禁用Web部署的選項。要啟用Web部署,請在「 歡迎」頁面中選擇「 自定義安裝」,單擊「 安裝」,然後選中「 在瀏覽器中啟用Java內容」復選框。
2、JEP 222:jshell:Java Shell(Read-Eval-Print Loop)
將Read-Eval-Print Loop(REPL)功能添加到Java平台。
該jshell工具提供了一個用於評估Java編程語言的聲明,語句和表達式的互動式命令行界面。
它有助於對編碼選項進行原型設計和探索,並立即得到結果和反饋。即時反饋與以表達式開始的能力相結合對教育非常有用,無論是學習Java語言,還是學習新的API或語言功能。
3、JEP 228:添加更多的診斷命令
定義其他診斷命令以提高診斷Hotspot和JDK問題的能力。
3、JEP 231:刪除啟動時JRE版本選擇
刪除了在啟動時請求不是JRE版本的JRE版本的功能。
4、JEP 238:多版本JAR文件
擴展JAR文件格式,使多個Java特定版本的類文件能夠共存於一個歸檔中。
5、JEP 240:刪除JVM TI hprof代理
hprof從JDK中刪除代理。該hprof代理程序被編寫為JVM工具介面的演示代碼,並不打算成為生產工具。
6、JEP 241:刪除jhat工具
jhat從JDK中刪除該工具。
7、JEP 245:驗證JVM命令行標志參數
驗證所有數字JVM命令行標志的參數以避免失敗,如果發現它們是無效的,則會顯示相應的錯誤消息。
⑩ java上傳附件資料庫怎麼設計
2種方式;
保存文件路徑;
將文件寫入資料庫,使用blob欄位