第十四周课程总结
JDBC
1.Java数据库连接是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
2.JDBC API允许用户访问任何形式的表格数据,尤其是存储在关系数据库中的数据。
3.执行流程:连接数据源,如:数据库 —> 为数据库传递查询和更新指令 —> 处理数据库响应并返回的结果。
MySQL(关系型数据库管理系统)
关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
1、查看数据库:>SHOW DATABASES;
2、创建数据库:>CREATE DATABASE db_name; //db_name为数据库名
3、使用数据库:>USE db_name;
4、删除数据库:>DROP DATABASE db_name;
实验报告(简单记事本的实现)
实验源码:
package test;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
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.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 LX implements ActionListener{
JFrame frame;
JMenuBar bar;
JMenu fileMenu,editMenu;
JMenuItem fnewItem,newItem,openItem,saveItem,anothersaveItem,closeItem;
JTextArea area;
JScrollPane scorll;
File file;
JFileChooser chooser;
@SuppressWarnings("deprecation")
public LX(){
frame = new JFrame("记事本");//创建一个窗体
bar=new JMenuBar(); //创建一个菜单栏,在菜单栏里添加菜单
fileMenu=new JMenu("文件");
editMenu=new JMenu("编辑");
area=new JTextArea(); //在文本组件上加入滚动组件
scorll = new JScrollPane(area);
fnewItem=new JMenuItem("新建(N)");
newItem=new JMenuItem("新窗口(W)");
openItem = new JMenuItem("打开(O)");
saveItem=new JMenuItem("保存(S)");
anothersaveItem=new JMenuItem("另存为(A)");
closeItem=new JMenuItem("关闭(X)");
fnewItem.addActionListener(this);
newItem.addActionListener(this);
openItem.addActionListener(this);
saveItem.addActionListener(this);
anothersaveItem.addActionListener(this);
closeItem.addActionListener(this);
fileMenu.add(fnewItem);
fileMenu.add(newItem);
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.add(anothersaveItem);
fileMenu.addSeparator();
fileMenu.add(closeItem);
fileMenu.setMnemonic(KeyEvent.VK_N);
newItem.setMnemonic(KeyEvent.VK_N);
openItem.setMnemonic(KeyEvent.VK_O);
saveItem.setMnemonic(KeyEvent.VK_S);
anothersaveItem.setMnemonic(KeyEvent.VK_A);
closeItem.setMnemonic(KeyEvent.VK_C);
fnewItem.setAccelerator(KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK)); //快捷键
newItem.setAccelerator(KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK|InputEvent.SHIFT_MASK));
openItem.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK));
saveItem.setAccelerator(KeyStroke.getKeyStroke('S',java.awt.Event.CTRL_MASK));
anothersaveItem.setAccelerator(KeyStroke.getKeyStroke('A',java.awt.Event.CTRL_MASK));
closeItem.setAccelerator(KeyStroke.getKeyStroke('X',java.awt.Event.CTRL_MASK));
bar.add(fileMenu);
bar.add(editMenu);
frame.setJMenuBar(bar);
frame.add(scorll);
frame.setSize(600,500);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent event) {
Object obj=event.getSource();
if(obj instanceof JMenuItem) {
JMenuItem item=(JMenuItem) obj;
if(item == this.newItem) {
new LX(); //新建一个窗口
}else if(item==openItem){
JFileChooser chooser =new JFileChooser();
chooser.showOpenDialog(null);
file=chooser.getSelectedFile();
try {
FileInputStream fis=new FileInputStream(file);
byte[] b=new byte[fis.available()];
fis.read(b); //读入字节数组b的内容
area.append(new String(b)); //将b的内容添加进area
fis.close(); //关闭输入流
} catch (IOException e) {
e.printStackTrace();
}
}else if(item==saveItem) {
JFileChooser chooser=new JFileChooser();
chooser.showSaveDialog(null);
file=chooser.getSelectedFile();
if(!file.exists()) { //
try {
file.createNewFile();
} catch (IOException e) {
System.out.printf("io异常");
e.printStackTrace();
}
}
try {
FileOutputStream fos=new FileOutputStream(file);
byte[] b=area.getText().getBytes();
fos.write(b);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}else if(item==closeItem) {
System.exit(1);
}
}
}
public static void main(String[] args) {
new LX();
}
}
实验结果: