第十四周總結

本週咱們主要學習了 jdbc 以及 MySQl數據庫
1、JDBC
概述:JDBC是Java提供的一套數據庫操做標準,各個數據庫生產商要按照此標準生產數據庫驅動,而開發者只須要掌握核心的接口與類便可經過SQL實現任意的數據庫操做。
2、JDBC驅動分類:
(1)JDBC-ODBC橋驅動
JDBC-ODBC是Sun提供的一個標準的JDBC操做,直接利用微軟的ODBC進行數據庫的連接操做,可是這種操做性能低,因此一般狀況下是不推薦使用這種方式進行操做的。
(ODBC(Open Database Connectivity,開放數據庫的鏈接)是微軟公司提供的一套數據庫的編程接口,Sun的JDBC實現實際上也是模仿了ODBC的設計)
(2)JDBC本地驅動
直接使用各個數據庫生產商提供JDBC驅動程序,可是由於其智能應用在特定的數據庫上,會喪失掉程序的可移植性,可是這樣操做的性能較高
(3)JDBC網絡驅動
這種驅動程序將JDBC轉化爲與DBMS無關的網絡協議,而後又被某個服務器轉化爲一種DBMS協議。這種網絡服務器中間件可以將它的純Java客戶機鏈接到各類不一樣的數據庫上。因此用的具體協議取決於提供者。一般,這是最爲靈活的JDBC驅動程序。
(4)本地協議純JDBC驅動
這種類型的驅動程序將JDBC調用直接裝華爲DBMS所使用的網絡協議。這將容許從客戶機機器上直接調用DBMS服務器,是Intranet訪問的一個很實用的解決方法。
3、JDBC的主要操做及接口
序號 類及接口 描述
1 java.sql.Drivermanager 用於管理JDBC驅動程式
2 java.sql.Connection 用於創建與特定數據庫的鏈接,一個連接就是一個對話,創建鏈接後即可以執行SQL語句和得到檢查後果
3 java.sql.Statemeng 一個Statemeng對象用於執行靜態SQL語句,並得到語句執行後產生的後果
4 java.sql.PreparedStatemeng 建立一個能夠編譯的SQL語句對象,該對象能夠被屢次運行,以提升執行效率,該接口是Statement的子接口
5 java.sql.Resultet 用於建立表示SQl語句檢索結果的結果集,用戶經過結果集完成都數據庫的訪問
6 java.sql.Date 該類是標準java.util.Date的一個子集,用於表示與SQL DATE相同的日期類型,該日期不包括時間
7 java.sql.Timestamp 標準java.util.Date類的擴展,用於表示SQL時間戳,並增長了一個能表示ns(納秒)的時間域
8 java.sql.CallableStatement 用於執行SQL存儲過程
9 java.sql.DatabaseMetaDate 與java.sql.ResultSetMetaData一個用於訪問數據庫夫人元信息
10 java,sql.Driver 定義一個數據庫驅動程序的接口
11 java.sql.DateTruncation 在JDBC遇到數據載斷的異常時,報告一個警告
12 java.sql.DriverPropertyInfo 高級程序設計人員經過Driver Property Info與Driver進行交流可以使用getDriverPropertyINfo獲取或提供驅動程序的信息
13 java. sql.Time 該類是標準java.util.date的一個子集,用於表示時、分、秒
14 java.sql.SQlExcepion 對數據庫訪問時產生的錯誤的描述信息
15 java.sql.Types 定義了表示SQL類型的常量
在JDBC的基本操做中最經常使用的類和接口就是DriverManager Connection Statement Result PreparedStatementjava

簡單記事本的編寫
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;sql

public class 記事本 extends JFrame implements ActionListener {
JTextArea inputText;
JScrollPane pane;
public 記事本() {
this.setTitle("Notepad");
this.setSize(600, 400);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);數據庫

Container contentPane = this.getContentPane();
    contentPane.setLayout(new BorderLayout(5,1));
    
    JMenuBar menuBar = new JMenuBar();
    JMenu menu = new JMenu("File");
    
    JMenuItem open=new JMenuItem("打開...");
    open.addActionListener(this);
    menu.add(open);
    JMenuItem save=new JMenuItem("存盤");
    save.addActionListener(this);
    menu.add(save);
    menu.addSeparator(); 
    JMenuItem item = new JMenuItem("退出");
    menu.add(item);
    item.addActionListener(this);

    menuBar.add(menu);
    
    this.setJMenuBar(menuBar);
    inputText=new JTextArea(100, 100);
    pane=new JScrollPane(inputText);
    contentPane.add(pane);
}

public static void main(String[] args) {
    JFrame frame = new 記事本();
    frame.setVisible(true);
}

@Override
public void actionPerformed(ActionEvent event) {
    String cmd = event.getActionCommand();
    if ("退出".equals(cmd)) {
        this.dispose();
    }
    if ("打開...".equals(cmd)) {
        File srcFile=null;
        JFileChooser fileChooser=new JFileChooser();
        int res=fileChooser.showOpenDialog(null);
        if(res==JFileChooser.APPROVE_OPTION) {
            srcFile=fileChooser.getSelectedFile();
        }
        try {
            InputStream is = new FileInputStream(srcFile);
            byte[] buffer = new byte[8*1024];
            int len;
            while ((len = is.read(buffer)) != -1) {
                String text = new String(buffer, 0, len,"UTF-8");
                inputText.append(text);
            }
            is.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    if ("存盤".equals(cmd)) {
        File destFile=null;
        JFileChooser fileChooser=new JFileChooser();
        int res = fileChooser.showSaveDialog(null);
        if (res == JFileChooser.APPROVE_OPTION) {
            destFile = fileChooser.getSelectedFile();
        } else {
            System.out.println("用戶取消");
            return;
        }
        try {
            OutputStream os = new FileOutputStream(destFile);
            os.write(inputText.getText().getBytes("UTF-8"));
            os.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

}
運行結果

總結 題目難 要室友同窗幫助編程

相關文章
相關標籤/搜索