实验报告
实验代码:
1 package notebook; 2 import java.awt.*; 3 import java.awt.event.*; 4 import java.io.File; 5 import java.io.FileInputStream; 6 import java.io.FileNotFoundException; 7 import java.io.FileOutputStream; 8 import java.io.IOException; 9 import java.io.InputStream; 10 11 import javax.swing.*; 12 13 14 public class ActionNoteBook implements ActionListener{ 15 JFrame frame; 16 JTextArea area; 17 JMenuBar bar; 18 JMenu ditMenu; 19 JMenu newMenu; 20 JMenuItem newItem,openItem,saveItem,closeItem; 21 ImageIcon icon; 22 JScrollPane scroll; 23 File file; 24 25 public ActionNoteBook() { 26 27 icon=new ImageIcon("G:\\3016183850_lanrentuku.com\\file.jpg"); 28 frame=new JFrame("记事本"); 29 area=new JTextArea(); 30 bar=new JMenuBar(); 31 ditMenu=new JMenu("编辑"); 32 newMenu=new JMenu("文件"); 33 newItem=new JMenuItem("新建(N)",icon); 34 openItem=new JMenuItem("打开(O)"); 35 saveItem=new JMenuItem("保存(S)"); 36 closeItem=new JMenuItem("关闭(X)"); 37 scroll=new JScrollPane(area); 38 39 40 newItem.setMnemonic(KeyEvent.VK_N); 41 openItem.setMnemonic(KeyEvent.VK_O); 42 saveItem.setMnemonic(KeyEvent.VK_S); 43 closeItem.setMnemonic(KeyEvent.VK_X); 44 45 newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_DOWN_MASK)); 46 openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_DOWN_MASK)); 47 saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_DOWN_MASK)); 48 closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_DOWN_MASK)); 49 50 bar.add(newMenu); 51 bar.add(ditMenu); 52 newMenu.add(newItem); 53 newMenu.add(openItem); 54 newMenu.add(saveItem); 55 newMenu.addSeparator(); 56 newMenu.add(closeItem); 57 58 newItem.addActionListener(this); 59 openItem.addActionListener(this); 60 saveItem.addActionListener(this); 61 closeItem.addActionListener(this); 62 63 frame.add(scroll); 64 frame.setJMenuBar(bar); 65 frame.setSize(500,400); 66 frame.setVisible(true); 67 68 69 70 } 71 72 73 public void actionPerformed(ActionEvent event) { 74 Object obj=event.getSource(); 75 if(obj instanceof JMenuItem) { 76 JMenuItem item=(JMenuItem) obj; 77 if(item == this.newItem) { 78 new ActionNoteBook(); //新建一个窗口 79 }else if(item==openItem){ 80 JFileChooser chooser =new JFileChooser(); 81 chooser.showOpenDialog(null); 82 file=chooser.getSelectedFile(); 83 try { 84 FileInputStream fis=new FileInputStream(file); 85 byte[] b=new byte[fis.available()]; 86 fis.read(b); //读入字节数组b的内容 87 area.append(new String(b)); //将b的内容添加进area 88 fis.close(); //关闭输入流 89 } catch (IOException e) { 90 e.printStackTrace(); 91 } 92 93 }else if(item==saveItem) { 94 JFileChooser chooser=new JFileChooser(); 95 chooser.showSaveDialog(null); 96 file=chooser.getSelectedFile(); 97 if(!file.exists()) { // 98 try { 99 file.createNewFile(); 100 } catch (IOException e) { 101 System.out.printf("io异常"); 102 e.printStackTrace(); 103 } 104 } 105 try { 106 FileOutputStream fos=new FileOutputStream(file); 107 byte[] b=area.getText().getBytes(); 108 fos.write(b); 109 fos.close(); 110 } catch (FileNotFoundException e) { 111 e.printStackTrace(); 112 } catch (IOException e) { 113 e.printStackTrace(); 114 } 115 116 117 }else if(item==closeItem) { 118 System.exit(1); 119 } 120 } 121 } 122 123 }
实验结果:
1-1,新建功能
2,打开功能
3,保存功能
学习总结
本周主要学习了用JDBC来使用MySQL。
一,JDBC概述
JDBC(Java Database Connectivity,Java数据库连接),提供了一种与平台无关的用于执行SQL语句的标准Java API,可以方便地实现多种关系型数据库的统一操作,它由一组用Java语言编写的类与接口组成。
二,JDBC驱动的分类
JDBC本身提供的是一套数据库操作标准,目前比较常见的JDBC驱动可分为以下四类:
(1)JDBC-ODBC桥驱动:一种由Sun提供的标准JDBC操作,直接使用微软的ODBC进行数据库的连接操作,但这种操作性能低,不推荐直接使用。
(2)JDBC本地操作:直接使用各个数据库生产商提供的JDBC驱动程序,但是只能应用在特定的数据库上,丧失了可移植性,但性能高。
(3)JDBC网络驱动:这是一种将JDBC转换为DBMS无关的网络协议,然后又被某个服务器转换为一种DBMS协议。这是最为灵活的JDBC驱动程序。
(4)本地纯协议JDBC驱动:将JDBC调用直接转换为DBMS所使用的网络协议。允许从客户机机器直接调用DBMS服务器,是Intranet访问的一个很实用的解决方法。
三,JDBC的主要操作类及接口
JDBC的核心是为用户提供Java API类库,让用户能够创建数据库连接、执行SQL语句、检索结果类、访问数据库数据等。在JDBC的基本操作中最基本的类和接口就是DriveManager、Connection、Statement、Result、PrepareStatement。
四,关于数据库的连接
一般有两个步骤,分别是:(1)加载驱动程序、(2)连接数据库
(1)加载驱动程序:首先,我们需要先下载并安装好需要使用的数据库,如:MySQL数据库。然后用反射机制直接调用类名来使用类的功能。
(2)连接数据库:使用DriveManager类来实现连接数据库。