• 第十四周课程总结&实验报告(简单记事本的实现)


    一、JDBC概述

    1.JDBC简介

    (1)JDBC是JAVA提供的一套数据库操作标准,各个数据库生产商要按照此标准生产数据库驱动,而开发者只需要掌握核心的接口与类即可通过SQL实现任意的数据库操作

    (2)JDBC提供了一种与平台无关的用于执行SQL语句的标准Java API,可以方便地实现多种关系型数据库的统一操作,它由一组用Java语言编写的类和接口组成

    2.JDBC驱动分类

    (1)JDBC-ODBC桥驱动

     (2)JDBC连接

    (3)JDBC网络驱动

    这种驱动程序将JDBC转换为与DBMS无关的网络协议,然后又被某个服务器转换为一种DBMS协议。

    (4)本地协议纯JDBC驱动

    这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。

    3.JDBC的主要操作类及接口

    类及接口 描述
    java.sql.DriverManager 用于管理JDBC驱动程序

    java.sql.Connection

    用于建立与特定数据库的连接,一个连接就是一个会话,建立连接后便可以执行SQL语句和获得检索结果
    java.sql.Statement 一个Statement对象用于执行静态SQL语句,并获得语句执行后的结果
    java.sql.PreparedStatement 创建一个可以编译的SQL语句对象,该对象可以被多次运行,以提高执行的效率,该接口是Statement的子接口
    java.sql.ResultSet 用于创建表示SQL语句检索结果的结果集,用户通过结果集完成对数据库的访问
    java.sql.Date 该类是标准java.util.Date的一个子集,用于表示与SQL DATE相同的日期类型,该日期不包括时间
    java.sql.Timestamp 标准java.util.Date类的扩展,用于表示SQL时间戳,并增加了一个能表示ns的时间域
    java.sql.CallableStatement 用于执行SQL存储过程
    java.sql.DatabaseMetaData 与java.sql.ResultSetMetaData一同用于访问数据库的元信息
    java.sql.Driver 定义一个数据库驱动程序的接口
    java.sql.DataTruncation 在JDBC遇到数据截断的异常时,报告一个警告(读数据时)或产生一个异常(写数据时)
    java.sql.DriverPropertyInfo 高级程序设计人员通过DriverPropertyInfo与Driver进行交流,可使用getDriverPropertyInfo获取或提供驱动程序的信息
    java.sql.Time 该类是标准java.util.Date的一个子集,用于表示时、分、秒
    java.sql.SQLException 对数据库访问时产生的错误的描述信息
    java.sql.SQLWarning 对数据库访问时产生的警告的描述信息
    java.sql.Types 定义了表示SQL类型的常量

    二、MySQL数据库

    1.MySQL简介

    MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。

    2.MySQL安装及配置

    3.MySQL常用命令

    (1)连接MySQL数据库

    ```

    mysql -u用户名 -p密码

    ```

    (2)创建数据库

    ```

    创建数据库:CREATE DATABASE 数据库名称;

    删除数据库:DROP DATABASE 数据库名称;

    ```

    (3)使用数据库

    ```

    USE 数据库名称;

    ```

    (4)创建数据库表

    ```

    CREATE TABLE 表名称(

      字段名称1   字段类型  [DEFAULT 默认值][约束],

      字段名称2    字段类型 [DEFAULT 默认值][约束],

      ……

      字段名称n   字段类型  [DEFAULT 默认值][约束]

    );

    ```

    (5)创建数据库表

    ```

    DROP TABLE 表名称;

    ```

    (6)查看表结构

    ```

    DESC 表名称;

    ```

    (7)查看数据库信息

    ```

    查看全部数据库: SHOW DATABASES;

    查看一个数据库的全部表: SHOW TABLES;

    ```

      实验报告

    package test;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.KeyEvent;
    import java.io.*;

    import javax.swing.*;

    public class Jishiben implements ActionListener{
    JFrame frame;
    JTextArea jta;
    File file1;
    JMenuBar menubar;
    JMenu menu;
    JMenuItem newitem;
    JMenuItem openitem;
    JMenuItem closeitem;
    JMenuItem saveitem;
    JScrollPane scroll;
    JFileChooser jfc;
    public Jishiben() {
    frame=new JFrame("记事本");
    jta=new JTextArea(10,4);
    jta.setEditable(true);
    scroll=new JScrollPane(jta,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

    menubar=new JMenuBar();
    menu=new JMenu("文件");
    newitem=new JMenuItem("新建");
    openitem=new JMenuItem("打开");
    closeitem=new JMenuItem("关闭");
    saveitem=new JMenuItem("另存为");

    newitem.setMnemonic(KeyEvent.VK_N);
    openitem.setMnemonic(KeyEvent.VK_O);
    closeitem.setMnemonic('c');
    saveitem.setMnemonic('s');

    newitem.setAccelerator(KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK));
    openitem.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK));
    closeitem.setAccelerator(KeyStroke.getKeyStroke('C',java.awt.Event.CTRL_MASK));
    saveitem.setAccelerator(KeyStroke.getKeyStroke('S',java.awt.Event.CTRL_MASK));

    newitem.addActionListener(this);
    openitem.addActionListener(this);
    closeitem.addActionListener(this);
    saveitem.addActionListener(this);

    menu.add(newitem);
    menu.add(openitem);
    menu.add(closeitem);
    menu.add(saveitem);

    menubar.add(menu);

    frame.setJMenuBar(menubar);
    frame.add(scroll);
    frame.setSize(550,400);
    frame.setLocation(460,180);
    frame.setVisible(true);

    }

    @Override
    public void actionPerformed(ActionEvent e) {
    if(e.getSource() instanceof JMenuItem) {
    if(e.getSource()==newitem) {
    new Jishiben();
    }
    else if(e.getSource()==openitem) {
    jfc=new JFileChooser();
    jfc.showOpenDialog(null);
    file1=jfc.getSelectedFile();
    try {
    FileInputStream input=new FileInputStream(file1);
    byte b1[]=new byte[(int) file1.length()];
    try {
    input.read(b1);
    String str=new String(b1);
    jta.append(str);
    input.close();
    } catch (IOException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    }
    } catch (FileNotFoundException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    }
    }
    else if(e.getSource()==closeitem) {
    System.exit(1);
    }
    else if(e.getSource()==saveitem) {
    jfc=new JFileChooser();
    jfc.showOpenDialog(null);
    file1=jfc.getSelectedFile();
    try {
    FileOutputStream output=new FileOutputStream(file1);
    byte b1[]=jta.getText().getBytes();
    try {
    output.write(b1);
    output.close();
    } catch (IOException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    }
    } catch (FileNotFoundException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    }
    }
    }

    }

    }

    package test;
    public abstract class Test {

    public static void main(String[] args) {
    new Jishiben();
    }

    }

    结果截图

  • 相关阅读:
    数据降维和可视化
    聚类
    支持向量机的实现
    支持向量机核函数
    支持向量基
    倾斜类误差度量
    构建垃圾邮件分类器
    POJ 2955 Brackets (区间dp入门)
    POJ 3126 Prime Path (bfs+欧拉线性素数筛)
    POJ 1426 Find The Multiple (dfs??!!)
  • 原文地址:https://www.cnblogs.com/xlshoho/p/11954125.html
Copyright © 2020-2023  润新知