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

    课程总结:

    一、JDBC:是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,能够执行SQL语句。它由一组用Java语言编写的类和接口组成。

    二、MySQL:MySQL是Web世界中使用最广泛的数据库服务器。SQLite的特点是轻量级、可嵌入,但不能承受高并发访问,适合桌面和移动应用。而MySQL是为服务器端设计的数据库,能承受高并发访问,同时占用的内存也远远大于SQLite。

    1、创建数据库
            *    create database 数据库名;
            *    create database 数据库名 character set '字符集'(如utf8) collate '校验规则';
            *    create database 数据库名 character set '字符集'(如gbk);    (采用默认校验规则)
        2、查询数据库
            *    show databases;                                    查询所有数据库
            *    select database();                                  查询正在使用的数据库
            *    show create database 数据库名;         查询创建的数据库的定义信息
            *    show tables;                                            查询当前数据库包含的所有表
        3、修改数据库
                *修改数据库名称:官方无直接修改数据库名称的方法,相对麻烦一些,可自行百度,这里提供一种方法:

                     备份数据库:

                           命令行模式输入:mysqldump -u root -p 需备份数据库 >备份文件名.sql

                    恢复数据库:

                           a、创建空数据库:create database newDatabase;
                           b、使用新数据库:use newDatabase;
                           c、还原数据库:source 备份文件名.sql;

                   删除原数据库及备份文件;

                  这样newDatabase就是我们重命名的数据库了


                *修改数据库:alter database 数据库名 character set '字符集' collate '校验规则';
        4、删除数据库
                drop database 数据库名;
        5、切换数据库
                use 数据库名。


    实验报告

    1.实验代码

    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import javax.swing.ImageIcon;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JOptionPane;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
     
    public class MainUI extends JFrame {
     
        private static final long serialVersionUID = -8533346717300013642L;
        private JTextArea jta;
        private JScrollPane jsp;
        private static String name;
        private JFileChooser jfc = new JFileChooser();
     
        public static void main(String[] args) {
            new MainUI().init();
        }
     
        // 初始化界面
        public void init() {
            setSize(800, 600);
            setLocationRelativeTo(null);
            // 设置关闭按钮动作不执行任何操作
            setDefaultCloseOperation(0);
            name = "新建文本文档.txt";
            // 设置标志图案
            ImageIcon ii = new ImageIcon("file\1.png");
            setIconImage(ii.getImage());
            // 设置文件名
            setTitle(name + " - 记事本");
            // 添加菜单栏
            addMenu();
            // 添加文本框
            jta = new JTextArea();
            // 添加滚动条
            jsp = new JScrollPane(jta);
            jsp.setPreferredSize(new Dimension(780, 550));
            add(jsp, BorderLayout.CENTER);
            setVisible(true);// 设置窗口可见
            addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e) {
                    if (showSaveDialog() != JOptionPane.CANCEL_OPTION)// 若不是取消按钮,关闭程序
                        setDefaultCloseOperation(3);
                }
            });
        }
     
        // 添加菜单栏
        private void addMenu() {
            // 添加菜单栏
            JMenuBar jmb = new JMenuBar();
            // 设置菜单栏位置在顶级窗口的顶部
            setJMenuBar(jmb);
            // 菜单栏菜单
            JMenu jm_file = new JMenu("文件");
            JMenu jm_edit = new JMenu("编辑");
            jmb.add(jm_file);
            jmb.add(jm_edit);
            // 给文件菜单添加菜单项
            JMenuItem item1 = new JMenuItem("打开");
            JMenuItem item2 = new JMenuItem("保存");
            jm_file.add(item1);
            jm_file.add(item2);
     
            // "打开"菜单项添加动作监听器
            item1.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    // 是否保存对原文件修改
                    if (showSaveDialog() == JOptionPane.CANCEL_OPTION) {// 取消按钮,则返回
                        return;
                    }
                    // 弹出一个 "Open File" 文件选择器对话框
                    int select = jfc.showOpenDialog(MainUI.this);
                    // 选择打开文件,则读写文件
                    if (select == JFileChooser.APPROVE_OPTION) {
                        jta.setText(readFile());// 写入文本框
                        jta.setCaretPosition(0);// 定位光标至行首
                    }
                }
            });
     
            // “保存”菜单项添加动作监听器
            item2.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    if (jfc.getSelectedFile() == null) {
                        createFile();//调用创建文件方法
                    } else {
                        showSaveDialog();//调用文件是否保存方法
                    }
                }
            });
        }
     
        // 读取文件
        private String readFile() {
            // 声明缓冲字符流变量
            BufferedReader br = null;
            StringBuilder sb = null;
            try {
                br = new BufferedReader(new FileReader(jfc.getSelectedFile()));
                sb = new StringBuilder();// 创建缓冲字符串
                String str;
                int count = 0;//控制添加换行符,与原文保持一致
                while ((str = br.readLine()) != null) {
                    if (count == 0)
                        sb.append(str);
                    if (count++ != 0)
                        sb.append("
    " + str);// 添加换行
                }
            } catch (FileNotFoundException e1) {
                // 弹出“文件未找到”对话框,返回null
                JOptionPane.showMessageDialog(null, "未找到该文件!");
                return null;
            } catch (IOException e1) {
                // 弹出“文件读取异常”对话框,返回null
                JOptionPane.showMessageDialog(null, "文件读取异常");
                return null;
            } finally {
                // 关闭字符流
                if (br != null)
                    try {
                        br.close();
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }
            }
            name = jfc.getSelectedFile().getName();
            setTitle(name + " - 记事本");//设置文件名
            return sb.toString();
        }
     
        // 保存对话框
        private int showSaveDialog() {
            int select = 0;
            // 判断文本框是否为空
            if (!jta.getText().equals("")) {
                // 判断文件是否为空
                if (jfc.getSelectedFile() == null) {
                    select = JOptionPane.showConfirmDialog(MainUI.this, "是否保存修改?");
                    if (select == JOptionPane.YES_OPTION) {
                        createFile();//文件不存在,则创建文件
                    }
                } else {
                    if (!isSaved()) {// 文件未保存
                        select = JOptionPane.showConfirmDialog(MainUI.this, "是否保存修改?");
                        if (select == JOptionPane.YES_OPTION) {
                            saveFile(jfc.getSelectedFile());
                        }
                    }
                }
            }
            return select;// 返回选项
        }
     
        // 创建新文件
        private void createFile() {
            // String name = null;
            File file = null;
            // 选择保存或取消
            if (jfc.showSaveDialog(MainUI.this) == JFileChooser.APPROVE_OPTION) {
                file = jfc.getSelectedFile();// 获取选中的文件
            } else {
                return;
            }
            name = jfc.getName(file);// 获取输入的文件名
            if (file.exists()) { // 若选择已有文件----询问是否要覆盖
                int i = JOptionPane.showConfirmDialog(null, "该文件已存在,是否覆盖原文件", "确认", JOptionPane.YES_NO_OPTION);
                if (i == JOptionPane.YES_OPTION) {
                    saveFile(file);
                } else {
                    jfc.showSaveDialog(MainUI.this);// 重新选择
                }
            } else {//文件不存在,则直接保存
                saveFile(file);
            }
        }
     
        // 判断文件是否保存
        private Boolean isSaved() {
            // 比较内容
            if (jta.getText().equals(readFile())) {
                return true;
            }
            return false;
        }
     
        // 保存文件,文件不存在则创建新文件
        private void saveFile(File file) {
            BufferedWriter bw = null;
            try {
                bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));
                bw.write(jta.getText());//写入文件
                bw.flush();
            } catch (FileNotFoundException e1) {
                JOptionPane.showMessageDialog(MainUI.this, "文件保存出错" + e1.getMessage());
            } catch (IOException e1) {
                e1.printStackTrace();
            } finally {
                try {
                    if (bw != null)
                        bw.close();
                } catch (IOException e1) {
                }
            }
        }
    }

    结果截图

  • 相关阅读:
    java接口鉴权之sign签名校验与JWT验证
    完整的后端开发流程-深入浅出Java线程池:使用篇
    Java多线程加法计算--Java识别静态验证码和动态验证码
    超全面设计指南:如何做大屏数据可视化设计?
    vue+echarts+datav大屏数据展示及实现中国地图省市县下钻
    开源」目前见过的最好的开源OA产品架构师之路(一):何时选用合适的语言
    如何做大屏数据可视化设计?
    Spring项目方便调试打印请求信息点击跳转到方法
    Echart生成的报表导出为PDF
    java环境变量一键配置
  • 原文地址:https://www.cnblogs.com/zcl666/p/11958978.html
Copyright © 2011-2022 走看看