第十四周学习总结&课程实验报告

课程总结

一、相关概念

1.什么是JDBC

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

2.数据库驱动

我们安装好数据库之后,我们的应用程序也是不能直接使用数据库的,必须要通过相应的数据库驱动程序,通过驱动程序去和数据库打交道。其实也就是数据库厂商的JDBC接口实现,即对Connection等接口的实现类的jar文件。

二、常用接口

1.Driver接口

 Driver接口由数据库厂家提供,作为java开发人员,只需要使用Driver接口就可以了。在编程中要连接数据库,必须先装载特定厂商的数据库驱动程序,不同的数据库有不同的装载方法。如:
  装载MySql驱动:Class.forName("com.mysql.jdbc.Driver");
  装载Oracle驱动:Class.forName("oracle.jdbc.driver.OracleDriver");

2.Connection接口

Connection与特定数据库的连接(会话),在连接上下文中执行sql语句并返回结果。DriverManager.getConnection(url, user, password)方法建立在JDBC URL中定义的数据库Connection连接上。
  连接MySql数据库:Connection conn = DriverManager.getConnection("jdbc:mysql://host:port/database", "user", "password");
  连接Oracle数据库:Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@host:port:database", "user", "password");
  连接SqlServer数据库:Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://host:port;
    DatabaseName=database", "user", "password");
    常用方法:
        createStatement():创建向数据库发送sql的statement对象。
        prepareStatement(sql) :创建向数据库发送预编译sql的PrepareSatement对象。
        prepareCall(sql):创建执行存储过程的callableStatement对象。
        setAutoCommit(boolean autoCommit):设置事务是否自动提交。
        commit() :在链接上提交事务。
        rollback() :在此链接上回滚事务。

实验报告

实验代码

package Test;
import javax.swing.*;
import java.awt.event.InputEvent;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.io.*;

public class TestPad implements ActionListener{

    File file;
    JFrame frame;
    JMenuBar bar;
    JMenu fileMenu,editMenu;
    ImageIcon newIcon,openIcon,saveIcon,closeIcon;
    JTextArea area;
    JScrollPane scroll;
    JMenuItem newItem,openItem,saveItem,closeItem;
    JFileChooser chooser;


    public TestPad(){


        frame = new JFrame("记事本");
        bar=new JMenuBar();
        fileMenu=new JMenu("文件");
        editMenu=new JMenu("编辑");
        newIcon=new ImageIcon();
        openIcon=new ImageIcon();
        saveIcon=new ImageIcon();
        closeIcon=new ImageIcon();
        area=new JTextArea();
        scroll=new JScrollPane(area);

        newItem=new JMenuItem("新建(N)",newIcon);
        openItem=new JMenuItem("打开(O)",openIcon);
        saveItem=new JMenuItem("另存为(S)",saveIcon);
        closeItem=new JMenuItem("关闭(C)",closeIcon);

        newItem.addActionListener(this);
        openItem.addActionListener(this);
        saveItem.addActionListener(this);
        closeItem.addActionListener(this);

        fileMenu.add(newItem);
        fileMenu.addSeparator();
        fileMenu.add(openItem);
        fileMenu.addSeparator();
        fileMenu.add(saveItem);
        fileMenu.addSeparator();
        fileMenu.add(closeItem);

        newItem.setMnemonic(KeyEvent.VK_N);
        openItem.setMnemonic(KeyEvent.VK_O);
        saveItem.setMnemonic(KeyEvent.VK_S);
        closeItem.setMnemonic(KeyEvent.VK_C);
        newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.ALT_MASK));
        openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.ALT_MASK));
        saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.ALT_MASK));
        closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.ALT_MASK));

        bar.add(fileMenu);
        bar.add(editMenu);

        frame.setJMenuBar(bar);
        frame.add(scroll);
        frame.setSize(400,300);
        frame.setVisible(true);

    }


    public void actionPerformed(ActionEvent event) {
        Object obj=event.getSource();
        if(obj instanceof JMenuItem){
            JMenuItem item=(JMenuItem)obj;
            if(item==newItem){
                new TestPad();
            }
            else if(item==openItem){
                chooser=new JFileChooser();
                chooser.showOpenDialog(null);
                file=chooser.getSelectedFile();
                try {
                    FileInputStream fis=new FileInputStream(file);
                    byte[] b=new byte[fis.available()];
                    fis.read(b);
                    area.append(new String(b));
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            else if(item==saveItem){
                chooser=new JFileChooser();
                chooser.showSaveDialog(null);
                file=chooser.getSelectedFile();
                try {
                    if(!file.exists()) {
                        file.createNewFile();
                    }
                    FileOutputStream fos=new FileOutputStream(file);
                    byte[] b=area.getText().getBytes();
                    fos.write(b);
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            else if(item==closeItem){
                System.exit(1);
            }
        }
    }

}
package Test;

public class test {
    public  static void main(String[] args){
        new TestPad();
    }
}

运行结构

新建

打开

另存为

原文地址:https://www.cnblogs.com/chenxiaolong-cxl/p/11949214.html