课程总结:
本周主要对数据库进行了学习:
1.JDBC:JDBC是Java提供的一套数据库操作标准
JDBC的主要操作类及接口:
Java.sql.CallableStatement:用于执行SQL存储过程
Java.sql.Types:定义了表示SQL类型的常量
java.sql.DriverManager :用于管理jdbc驱动程序
Java.sql.Connection :用于建立与特定数据库的连接
Java.sql.Statement 一个Statement的对象用于执行静态sql语句,并获得语句执行后产生的后果
Java.sql.PreparedStatement 创建一个可以编译的sql语句对象,该对象可以多次被运行,以提高执行效率,是Statement的子接口
Java.sql.ResultSet 用于创建表示sql语句检索结果的结果集,用户通过结果集完成对数据库的访问
Java.sql.CallableStatement:用于执行SQL存储过程
Java.sql.Types:定义了表示SQL类型的常量
在JDBC中基本操作中最常用的类和接口就是DriverManger、Connection、Statement、Result、PrepaerdStatement。
2.MySQL数据库:
MySQL的官方网站是:www.mysql.com
MySQL的安装及配置:端口设置默认值是3360.
MySQL常用命令:
链接mysql数据库
mysql -u 用户名 -p 密码
创建数据库
创建数据库:CREATE DATABASE 数据库名称 删除数据库:DROP DATABASE 数据库名称
使用数据库:
USE 数据库名称
创建数据库表:
CREATE TABLE 表名称( 字段名称1 字段类型【DEFAULT 默认值】【约束】 字段名称1 字段类型【DEFAULT 默认值】【约束】 ......... 字段名称n 【DEFAULT 默认值】【约束】 )
删除数据库表:
DROP TABLE 表名称;
查看表结构
DESC 表名称;
查看数据库信息
查看全部数据库:SHOW DATEBASES; 查看一个数据库的全部表;SHOW TABLES;
学这个的时候有一点之前在cmd里面写东西的感觉,但是这个知识比之前那个难太多了(个人觉得),上课听得稀里糊涂,没听懂多少,老师讲之后再结合自己看书才搞懂一些。
实验报告:
源代码:
package demo2; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import javax.swing.ImageIcon; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.KeyStroke; public class TextPad implements ActionListener{ JFrame frame; JMenuBar bar; JMenu fileMenu; JMenu editMenu; ImageIcon newIcon; ImageIcon openIcon; ImageIcon saveIcon; ImageIcon closeIcon; JTextArea area; JScrollPane scroll; JMenuItem newItem; JMenuItem openItem; JMenuItem saveItem; JMenuItem closeItem; JFileChooser chooser; File file; public TextPad(){ frame=new JFrame("记事本"); bar=new JMenuBar(); fileMenu=new JMenu("文件"); editMenu=new JMenu("编辑"); //图标 newIcon=new ImageIcon("g:"+File.separator+"test"+File.separator+"新建.png"); openIcon=new ImageIcon("g:"+File.separator+"test"+File.separator+"打开.png"); saveIcon=new ImageIcon("g:"+File.separator+"test"+File.separator+"退出.png"); closeIcon=new ImageIcon("g:"+File.separator+"test"+File.separator+"关闭.png"); area=new JTextArea(); scroll=new JScrollPane(area); newItem=new JMenuItem("新建",newIcon); openItem=new JMenuItem("打开",newIcon); saveItem=new JMenuItem("退出",newIcon); closeItem=new JMenuItem("关闭",newIcon); //快捷键 newItem.setMnemonic('N'); openItem.setMnemonic('O'); saveItem.setMnemonic('E'); closeItem.setMnemonic('C'); newItem.setAccelerator(KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK)); openItem.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK)); saveItem.setAccelerator(KeyStroke.getKeyStroke('E',java.awt.Event.CTRL_MASK)); closeItem.setAccelerator(KeyStroke.getKeyStroke('C',java.awt.Event.CTRL_MASK)); //监听器 newItem.addActionListener(this); newItem.addActionListener(this); newItem.addActionListener(this); newItem.addActionListener(this); fileMenu.add(newItem); fileMenu.add(openItem); fileMenu.add(saveItem); fileMenu.addSeparator(); fileMenu.add(newItem); newItem.setMnemonic(KeyEvent.VK_N); bar.add(editMenu); bar.add(fileMenu); frame.setJMenuBar(bar); frame.setVisible(true); frame.setSize(300,180); frame.setLocation(300,200); } public void actionPerformed(ActionEvent event) { Object obj=event.getSource(); if(obj instanceof JMenuItem){ JMenuItem item=(JMenuItem) obj; if(item==newItem){ new TextPad(); }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){ chooser=new JFileChooser(); chooser.showSaveDialog(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 demo2; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub new TextPad(); } }
运行结果截图
不知道为什么设置了图标地址,就偏偏全部是一个图案,而且并且实现不了一些功能,参照老师上课讲的写的,之前也按书上的方法写过,都达不到最终的目的。