zoukankan      html  css  js  c++  java
  • 第十四周学习总结&课程实验报告

    课程总结

    一、相关概念

    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();
        }
    }
    

    运行结构

    新建

    打开

    另存为

  • 相关阅读:
    第一个反汇编程序
    边缘网关协议(BGP)
    Servlet 学习小结之doPost()方法和doGet()方法
    extern "C"
    工欲善其事 必先利其器
    我是一个混蛋程序员
    KMP 算法——C
    二分查找——C语言
    大整数加法——C语言
    子字符串查找——C语言
  • 原文地址:https://www.cnblogs.com/chenxiaolong-cxl/p/11949214.html
Copyright © 2011-2022 走看看