第十四周课程总结&实验报告
17.1JDBC概述
17.1.1JDBC简介:Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。
17.1.2JDBC驱动分类:
JDBC驱动类型一:JDBC-ODBC桥驱动
JDBC驱动类型二:JCDBC本地驱动
JDBC驱动类型三:JDBC网络驱动
JDBC驱动类型四:本地协议纯JDBC驱动
17.1.3JDBC的主要操作类及接口
java.sql.DriverManager 用于管理JDBC驱动程序 java.sql.Connection 用于建立与特定数据库的连接,一个连接就是一个会话,建立连接后便可以执行SQL语句和获得检索结果。 java.sal.Statement 一个Statement对象用于执行静态SQL语句,并获得语句执行后产生的结果。 java.sql.PreparedStatement 创建一个可以编译的SQL语句对象,给对象可以被多次运行,以提高执行效率,改接口是Statement的子接口。 java.sql.ResultSet 用于创建表示SQL语句检索结果集,用户通过结果集完成对数据库的访问。 java.sql.Driver 定义一个数据库的驱动接口。
17.2MySQL数据库
17.2.1MySQL简介:MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
库操作:
1、创建数据库 命令:create database <数据库名> 例如:建立一个名为xhkdb的数据库 mysql> create database xhkdb; 2、显示所有的数据库 命令:show databases mysql> show databases; 3、删除数据库 命令:drop database <数据库名> 例如:删除名为 xhkdb的数据库 mysql> drop database xhkdb; 4、连接数据库 命令: use <数据库名> 例如:如果xhkdb数据库存在,尝试存取它: mysql> use xhkdb; 屏幕提示:Database changed 5、查看当前使用的数据库 mysql> select database(); 6、当前数据库包含的表信息: mysql> show tables;
实验报告:
实验代码:
test
package demo; import java.awt.*; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.print.PageFormat; import java.awt.print.PrinterJob; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class test implements ActionListener { JFrame frame; JMenuBar bar; JMenu fileMenu,editMenu,formatMenu,searchMenu,helpMenu; JMenuItem newItem,openItem,saveItem,closeItem,pageItem,printItem; JMenuItem withdrawItem,shearItem,copyItem,stickItem,delateItem,seekItem,seeknextItem,replaceItem,turnItem,checkallItem,timeItem; JScrollPane scroll; JTextArea area; JFileChooser chooser; File file; public test() { frame=new JFrame("记事本"); bar=new JMenuBar(); fileMenu=new JMenu("文件"); editMenu=new JMenu("编辑"); formatMenu=new JMenu("格式"); searchMenu=new JMenu("查找"); helpMenu=new JMenu("帮助"); newItem=new JMenuItem("新建(N)"); openItem=new JMenuItem("打开(O)"); saveItem=new JMenuItem("另存为(A)"); pageItem=new JMenuItem("页面设置(U)"); printItem=new JMenuItem("打印(P)"); closeItem=new JMenuItem("关闭(X)"); withdrawItem=new JMenuItem("撤回(U)"); shearItem=new JMenuItem("剪切(T)"); copyItem=new JMenuItem("复制(C)"); stickItem=new JMenuItem("粘贴(P)"); delateItem=new JMenuItem("删除(L))"); seekItem=new JMenuItem("查找(F)"); seeknextItem=new JMenuItem("查找下一个(N)"); replaceItem=new JMenuItem("替换(R)"); turnItem=new JMenuItem("转到(G)"); checkallItem=new JMenuItem("全选(A)"); timeItem=new JMenuItem("时间(D)"); area=new JTextArea(); scroll=new JScrollPane(area); newItem.addActionListener(this); openItem.addActionListener(this); saveItem.addActionListener(this); closeItem.addActionListener(this); pageItem.addActionListener(this); printItem.addActionListener(this); fileMenu.add(newItem); fileMenu.addSeparator(); fileMenu.add(openItem); fileMenu.addSeparator(); fileMenu.add(saveItem); fileMenu.addSeparator(); fileMenu.add(pageItem); fileMenu.addSeparator(); fileMenu.add(printItem); fileMenu.addSeparator(); fileMenu.add(closeItem); editMenu.add(withdrawItem); editMenu.addSeparator(); editMenu.add(shearItem); editMenu.addSeparator(); editMenu.add(copyItem); editMenu.addSeparator(); editMenu.add(stickItem); editMenu.addSeparator(); editMenu.add(delateItem); editMenu.addSeparator(); editMenu.add(seekItem); editMenu.addSeparator(); editMenu.add(seeknextItem); editMenu.addSeparator(); editMenu.add(replaceItem); editMenu.addSeparator(); editMenu.add(turnItem); editMenu.addSeparator(); editMenu.add(checkallItem); editMenu.addSeparator(); editMenu.add(timeItem); newItem.setMnemonic(KeyEvent.VK_N); newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,java.awt.Event.CTRL_MASK)); openItem.setMnemonic(KeyEvent.VK_O); openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,java.awt.Event.CTRL_MASK)); saveItem.setMnemonic(KeyEvent.VK_A); saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,java.awt.Event.CTRL_MASK)); closeItem.setMnemonic(KeyEvent.VK_X); closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,java.awt.Event.CTRL_MASK)); pageItem.setMnemonic(KeyEvent.VK_U); pageItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,java.awt.Event.CTRL_MASK)); printItem.setMnemonic(KeyEvent.VK_P); printItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,java.awt.Event.CTRL_MASK)); frame.setJMenuBar(bar); frame.add(scroll); frame.setSize(750,500); frame.setVisible(true); bar.add(fileMenu); bar.add(editMenu); bar.add(formatMenu); bar.add(searchMenu); bar.add(helpMenu); } @Override public void actionPerformed(ActionEvent event) { Object obj=event.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); try { byte[] b=new byte[fis.available()]; fis.read(b); area.append(new String(b)); fis.close(); } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } }else if(item==saveItem) { chooser=new JFileChooser(); 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==pageItem) { PageFormat pf = new PageFormat(); PrinterJob.getPrinterJob().pageDialog(pf); } else if(item==printItem) { Print(); } else if(item==closeItem) { System.exit(1); } } } private void Print() { // TODO Auto-generated method stub } }
test1
package demo; public class test1 { public static void main(String[] args) { new test(); } }
运行截图:
实验总结:这次试验虽然对比之前要难一点,但是在课堂上老师已经讲了很大一部分了,而且课后还用手机将代码拍下来了,所以这次的实验还是能完成的。但这个实验相比于课程设计中的记事本也只不过是冰山一角。所以说,最后的课程设计的记事本可以算得上是一个大工程了。
来源:https://www.cnblogs.com/chenzg90826/p/11960171.html