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

    简易记事本

    (一)实验代码:

    package A;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.InputEvent;
    import java.awt.event.KeyEvent;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.PrintStream;
    
    import javax.swing.*;
    
    public class TextPad implements ActionListener {
        JFrame frame;
        JMenuBar bar;
        JMenu fileMenu, editMenu;
        ImageIcon newIcon, openIcon, saveIcon, closeIcon;
        JMenuItem newItem, openItem, saveItem, closeItem;
        JTextArea area;
        JScrollPane scroll;
        File file;
    
        public TextPad() {
            frame = new JFrame("HNC");
            bar = new JMenuBar();
            fileMenu = new JMenu("文件");
            area = new JTextArea();
            scroll = new JScrollPane(area);
    
            newIcon = new ImageIcon("d:" + File.separator + "tupian" + File.separator + "1.jpg");
            openIcon = new ImageIcon("d:" + File.separator + "tupian" + File.separator + "2.jpg");
            saveIcon = new ImageIcon("d:" + File.separator + "tupian"+ File.separator + "3.jpg");
            closeIcon = new ImageIcon("d:" + File.separator + "tupian" + File.separator + "4.jpg");
            newItem = new JMenuItem("新建(N)", newIcon);
            openItem = new JMenuItem("打开(O)", openIcon);
            saveItem = new JMenuItem("保存(S)", saveIcon);
            closeItem = new JMenuItem("关闭(C)", closeIcon);
    
            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.CTRL_MASK));
            openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
                    InputEvent.CTRL_MASK));
            saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
                    InputEvent.CTRL_MASK));
            closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
                    InputEvent.CTRL_MASK));
    
            newItem.addActionListener(this);
            openItem.addActionListener(this);
            saveItem.addActionListener(this);
            closeItem.addActionListener(this);
            bar.add(fileMenu);
            fileMenu.add(newItem);
            fileMenu.add(openItem);
            fileMenu.add(saveItem);
            fileMenu.add(closeItem);
            frame.add(scroll);
            frame.setJMenuBar(bar);
            frame.setSize(400, 300);
            frame.setLocation(300, 300);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
        }
    
    
        public void actionPerformed(ActionEvent event) {
            Object obj = event.getSource();
            if (obj instanceof JMenuItem) {
                JMenuItem item = (JMenuItem) obj;
                if (item == newItem) {
                    new TextPad();
                } else if (item == openItem) {
                    JFileChooser 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 (FileNotFoundException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                } else if (item == saveItem) {
                    JFileChooser chooser = new JFileChooser();
                    chooser.showSaveDialog(null);
                    file = chooser.getSelectedFile();
                    if (!file.exists()) {
                        try {
                            PrintStream out = new PrintStream(new FileOutputStream(file));
                            out.print(area.getText());
                            out.close();
                        } catch (FileNotFoundException e1) {
                            e1.printStackTrace();
                        }
                    }
                } else if (item == closeItem) {
                    System.exit(0);
                }
            }
    
        }
    }
    

    实验结果:

      JDBC驱动程序分为四类: 1)JDBC-ODBC桥驱动; 2)JDBA本地驱动; 3)JDBC网络驱动; 4)本地协议纯JDBC驱动;

    JDBC的连接地址实际上是由以下的3个部分组成。
    (1)jabc 协议:JDBC URL 中的协议总是 jdbc。
    (2)子协议:驱动程序名或数据库连接机制(这种机制可由一个或多个驱动程序支持)的名称,如
    MySQL。
    (3)子名称: 种标识数据库的方法。必须遵循“//主机名:端口/子协议”的标准URL 命名约定,
    如//localhost:3306/mldn

    加载驱动程序:

    Class.forName(driverClass)
    //加载MySql驱动
    Class.forName("com.mysql.jdbc.Driver")
    //加载Oracle驱动
    Class.forName("oracle.jdbc.driver.OracleDriver")
    

    获得数据库连接:

    DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/imooc", "root", "root");
    

    创建StatementPreparedStatement对象:

    conn.createStatement();
    conn.prepareStatement(sql);
    

    完整实例:

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    public class DbUtil {
    
        public static final String URL = "jdbc:mysql://localhost:3306/imooc";
        public static final String USER = "liulx";
        public static final String PASSWORD = "123456";
    
        public static void main(String[] args) throws Exception {
            //1.加载驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            //2. 获得数据库连接
            Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
            //3.操作数据库,实现增删改查
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT user_name, age FROM imooc_goddess");
            //如果有数据,rs.next()返回true
            while(rs.next()){
                System.out.println(rs.getString("user_name")+" 年龄:"+rs.getInt("age"));
            }
        }
    }
    
  • 相关阅读:
    多线程
    文件上传案例及多线程版本
    TCP、UDP网络通信
    刷题:蘑菇街最小移动次数
    刷题:蘑菇街回文串
    刷题:蘑菇街
    Range Sum Query
    Submission Details
    Reverse Words in a String
    Counting Bits
  • 原文地址:https://www.cnblogs.com/huangnuocheng/p/11960443.html
Copyright © 2011-2022 走看看