zoukankan      html  css  js  c++  java
  • 第十四周课程总结&实验报告(简单记事本的实现)

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

    }

    结果截图

  • 相关阅读:
    mysql索引
    springboot mybatis 后台框架平台 shiro 权限 集成代码生成器
    java 企业网站源码模版 有前后台 springmvc SSM 生成静态化
    java springMVC SSM 操作日志 4级别联动 文件管理 头像编辑 shiro redis
    activiti工作流的web流程设计器整合视频教程 SSM和独立部署
    .Net Core中的ObjectPool
    文件操作、流相关类梳理
    .Net Core中的配置文件源码解析
    .Net Core中依赖注入服务使用总结
    消息中间件RabbitMQ(一)
  • 原文地址:https://www.cnblogs.com/xlshoho/p/11954125.html
Copyright © 2011-2022 走看看