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

    第十四周课程总结&实验报告

    记事本实验源码:

    package main1;
    
    import javax.swing.*;
    import java.awt.event.*;
    import java.io.*;
    
    
    public class Test implements ActionListener {
             JFrame frame;
             JMenuBar bar;
             JMenu fileMenu,editMenu;
             JMenuItem newItem,openItem,saveItem,savesItem,closeItem;
             ImageIcon newIcon,openIcon,saveIcon,savesIcon,closeIcon;
             JScrollPane scroll;
             JTextArea area;
             JFileChooser chooser;
             File file;
    
    
         public Test(){
                 frame =new JFrame("LZY");
                 bar =new JMenuBar();
                 fileMenu =new JMenu("文件");
                 editMenu =new JMenu("编辑");
                 newIcon=new ImageIcon("d:"+File.separator+"java"+File.separator+"1.png");
                 openIcon=new ImageIcon("d:"+File.separator+"java"+File.separator+"2.png");
                 saveIcon=new ImageIcon("d:"+File.separator+"java"+File.separator+"3.png");
                 savesIcon=new ImageIcon("d:"+File.separator+"java"+File.separator+"3.png");
                 closeIcon=new ImageIcon("d:"+File.separator+"java"+File.separator+"4.png");
                 newItem=new JMenuItem("新建(N)",newIcon);
                 openItem=new JMenuItem("打开(O)",openIcon);
                 saveItem=new JMenuItem("保存(A)",saveIcon);
                 savesItem = new JMenuItem("另存为(B)",savesIcon);
                 closeItem=new JMenuItem("关闭(X)",closeIcon);
                 area =new JTextArea();
                 scroll=new JScrollPane(area);
    
                 newItem.setMnemonic(KeyEvent.VK_N);
                 openItem.setMnemonic(KeyEvent.VK_O);
                 saveItem.setMnemonic(KeyEvent.VK_A);
                 savesItem.setMnemonic(KeyEvent.VK_B);
                 closeItem.setMnemonic(KeyEvent.VK_X);
    
                 newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_DOWN_MASK));
                 openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_DOWN_MASK));
                 saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_DOWN_MASK));
                 savesItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,InputEvent.CTRL_DOWN_MASK));
                 closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_DOWN_MASK));
    
                 fileMenu.add(newItem);
                 fileMenu.add(openItem);
                 fileMenu.add(saveItem);
                 fileMenu.add(savesItem);
                 fileMenu.add(closeItem);
                 
                 JScrollPane scroll =new  JScrollPane(area, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);//加滚动条
                 newItem.addActionListener(this);
                 openItem.addActionListener(this);
                 saveItem.addActionListener(this);
                 savesItem.addActionListener(this);
                 closeItem.addActionListener(this);
    
                 bar.add(fileMenu);
                 bar.add(editMenu);
    
                 frame.addWindowListener(new WindowAdapter() {
                   public void windowClosing(WindowEvent arg0){
                       System.exit(1);
                   }});
                  frame.setJMenuBar(bar);
                  frame.add(scroll);
                  frame.setVisible(true);
                  frame.setSize(800,600);
                  frame.setLocation(500,400);
             }
             
             public void actionPerformed(ActionEvent a) {        
                 Object obj= a.getSource();
                 if(obj instanceof JMenuItem) {
                     JMenuItem item=(JMenuItem) obj;
                     if(item==newItem) {       //新建
                         new Test();
                     }
                     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(FileNotFoundException e) {
                             e.printStackTrace();
                         }catch(IOException e) {
                             e.printStackTrace();
                         }
                     }
                     else if(item==saveItem) {             //保存
                         if(file!=null) {
                             try {
                                 PrintStream out = new PrintStream(new FileOutputStream(file));
                                 out.print(this.area.getText());
                                 out.close();
                             } catch (FileNotFoundException e){
                                 e.printStackTrace();
                             }
                         }
                         else if(item==savesItem){              //另存为
                         chooser.showOpenDialog(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 main1;
    
    public class main {
        public static void main(String[] args)
        {
            new Test();
        }
    
    }

    实验截图:

     

     实验过程和问题:

    老师在课上写过这个代码,但独自完成还是有些难度,代码实现过程没有什么大问题,按照步骤实现记事本的一些功能,但是没能实现一些新的功能。但也出现了问题,在网上找了表示新建、打开、保存等的图标,但是会出现显示过大或不显示的问题,后来通过改图标分辨率才解决问题。

    JDBC课程学习总结:

    JDBC(JavaDataBase Connectivity)就是Java数据库连接,就是用Java语言来操作数据库。操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。

    Java中的JDBC驱动可以分为四种类型,包括JDBC-ODBC桥、本地API驱动、网络协议驱动和本地协议驱动。

      一、JDBC-ODBC桥

        JDBC-ODBC 桥 是sun公司提供的,这种类型的驱动实际是把所有 JDBC的调用传递给ODBC ,再由ODBC调用本地数据库驱动代码。

      二、本地API驱动

         本地API驱动直接把JDBC调用转变为数据库的标准调用再去访问数据库。

      三、网络驱动

        JDBC先把对数局库的访问请求传递给网 络上的中间件服务器. 中间件服务器再把请求翻译为符合数据库规范的调用,再把这种调用 传给数据库服务器。

      四、本地协议驱动

        这种驱动直接把JDBC调用转换为符合相关数据库系统规范的请求。

    JDBC的主要操作类及接口

    JDBC的主要操作类及接口

    序号

    类及接口

    描 述

    1

    java.sql.DriverManager

    用于管理JDBC驱动程序

    2

    java.sql.Connection

    用于建立与特定数据库的连接,一个连接就是一个会话,建立后连接后便可以执行SQL语句和获得检索结果

    3

    java.sgql.Statement

    一个Statement对象用于执行静态SQL语句,并获得语句执行后产生的结果

    4

    java.sql.PreparedStatement

    创建一个可以编译的SQL语句对象,该对象可以被多次运行, 以提高执行的效率,该接口是Statement的子接口

    5

    java.sql.ResultSet

    用于创建表示SQL语句检索结果的结果集,用户通过结果集完成对数据库的访问

    6

    java.sql.Date

    该类是标准java.uil.Date的一个子集,用于表示与SQL DATE相同的日期类型,该日期不包括时间

    7

    java.sgl.Trimestamp

    标准java.util.Date类的扩展,用于表示SQL时间戳,并增加了一个能表示ns (纳秒)的时间域

    8

    java.sql.CallableStatement

    用于执行SQL存储过程

    9

    java.sql.DatabaseMetaData

    与java.sql.ResultSetMetaData一同用于访问数据库的元信息

    10

    java.sql.Driver

    定义一个数据库驱动程序的接口

    11

    java.sql.DataTruncation

    在JDBC遇到数据截断的异常时,报告一个警告(读数据时) 或产生一个异常(写数据时)

    12

    java.sql.DriverPropertyInto

    高级程序设计人员通过DriverPropertyInfo与Driver进行交流, 可使用getDriverPropertyInfo获取或提供驱动程序的信息 

    13

    java.sql.Time

    该类是标准java.util.Date的一个子集,用于表示时、分、秒

    14

    java.sgl.SQLException

    对数据库访问时产生的错误的描述信息

    15

    java.sgql.SQL Warning

    对数据库访问时产生的警告的描述信息

    16

    java.sql.Types

    定义了表示SQL类型的常量

    JDBC操作步骤

    1.加载数据库驱动程序

      1 加载Oracle数据库驱动  Class.forName("oracle.jdbc.driver.OracleDriver");

      2 加载SQL Server数据库驱动  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

      3 加载MySQL 数据库驱动  Class.forName("com.mysql.jdbc.Driver");

    2.连接数据库

      根据各个数据库的不同,连接的地址也不同,此连接地址将由数据库厂商提供。

    DriverManager类的常用方法

    序号

    方 法

    类型

    描述

    1

    public static Connection getConnection(String url) throws SQLException

    普通

    通过连接地址连接数据库

    2

    public static Connection getConnection(String url,String user,String password) throws SQLException

    普通

    通过连接地址连接数据库,
    同时输入用户名和密码

    3.使用语句进行数据库操作

    数据库操作分为更新和查询两种操作,除了可以使用标准的SQL语句外,对于各个数据库也可以使用其自己提供的各种命令。

    4.关闭数据库连接

      闭数据库连接:数据库操作完毕之后需要关闭连接以释放资源。

    数据库的更新操作

    序号

    方法

    类型

    描述

    1

    int executeUpdate(String sql) throws SQLException

    普通

    执行数据库更新的SQL语句,如INSERT、 UPDATE, DELETE等语句,返回更新的记录数

    2

    ResulSet executeQuery(String sql) throws SQLException

    普通

    执行数据库查询操作,返回一个结果集对象

    3

    void addBatch(String sq) throws SQLException

    普通

    增加一个待执行的SQL语句

    4

    int[] executeBatch) throws SQLException

    普通

    批量执行SQL语句

    5

    void close) throws SQLException

    普通

    关闭Statement操作

    6

    boolean execute(String sq) throws SQLException

    普通

    执行SQL语句

    个人学习总结:

     本周学习了java数据库连接,首先想到的是用数据库来实现用户的登录系统,目前仍在努力中,数据库的学习中同样有很多的类和接口来对数据库进行一些操作,这是比较难的一方面,但是实现之后使用起来就会很方便,在很多程序中都需要大量数据,所以这一方面还是要学好。

  • 相关阅读:
    NET VBCSCompiler.exe占用100%,造成项目卡顿的的解决方法
    C#导出word [无规则表结构+模板遇到的坑]
    mysql允许远程连接的命令
    bootstrap-table的一些基本使用及表内编辑的实现
    在 VS2015+EF6.0中使用Mysql 遇到的坑
    NET使用SuperSocket完成TCP/IP通信
    GRPC在NET上的应用
    NET SignaiR 实现消息的推送,并使用Push.js实现通知
    运维自动化之4
    运维自动化之3
  • 原文地址:https://www.cnblogs.com/198266qq/p/11954209.html
Copyright © 2011-2022 走看看