第十四周课程总结
实现简单记事本
1、源代码
package jsb;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
public class jsb implements ActionListener {
JFrame frame;
JMenuBar bar;
JMenu fileMenu, editMenu,formatMenu,viewMenu,helpMenu;
JMenuItem newItem, openItem, saveItem, closeItem;
ImageIcon newIcon, openIcon, saveIcon, closeIcon;
JScrollPane scroll;
JTextArea area;
JFileChooser chooser;
File file;
public jsb() {
frame = new JFrame("XZL");
bar = new JMenuBar();
fileMenu = new JMenu("文件(F)");
editMenu = new JMenu("编辑(E)");
formatMenu= new JMenu("格式(O)");
viewMenu=new JMenu("查看(V)");
helpMenu= new JMenu("帮助(H)");
newItem = new JMenuItem("新建(N)", newIcon);
openItem = new JMenuItem("打开(O)", openIcon);
saveItem = new JMenuItem("保存(A)", saveIcon);
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);
closeItem.setMnemonic(KeyEvent.VK_X);
newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK));
openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK));
saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK));
closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK));
fileMenu.add(newItem);
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.addSeparator();
fileMenu.add(closeItem);
newItem.addActionListener((ActionListener) this);
openItem.addActionListener((ActionListener) this);
saveItem.addActionListener((ActionListener) this);
closeItem.addActionListener((ActionListener) this);
bar.add(fileMenu);
bar.add(editMenu);
bar.add(formatMenu);
bar.add(viewMenu);
bar.add(helpMenu);
frame.setJMenuBar(bar);
frame.add(scroll);
frame.setVisible(true);
frame.pack();
}
public void actionPerformed(ActionEvent event) {
Object obj = event.getSource();
if (obj instanceof JMenuItem) {
JMenuItem item = (JMenuItem) obj;
if (item == newItem) {
new jsb();
}
else if(item==openItem){
JFileChooser 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){
JFileChooser chooser = new JFileChooser();
chooser.showSaveDialog(null);
file=chooser.getSelectedFile();
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
try {
FileOutputStream fos=new FileOutputStream(file);
byte[] b = area.getText().getBytes();
try {
fos.write(b);
} catch (IOException ex) {
ex.printStackTrace();
}
try {
fos.close();
} catch (IOException ex) {
ex.printStackTrace();
}
} catch (FileNotFoundException ex) {
ex.printStackTrace();
}
}
}
}
else if(item==closeItem){
System.exit(1);
}
}
}
}
package jsb;
public class jsb2 {
public static void main(String[] args) {
new jsb();
}
}
2、实验结果截图
学习总结
数据库
JDBC是接口,驱动是接口的实现类,没有驱动将无法完成数据库连接,从而不能操作数据库
1、JDBC的四种驱动分类
JDBC-ODBC桥驱动
直接利用微软的ODBC进行数据库的连接操作,但是这种操作性能较低
JDBC本地驱动
直接使用各个数据库生产商的JDBC驱动程序,但是因为其只能应用在特定的数据库上,会丧失掉程序的可移植性,但这样操作的性能更高
JDBC网络驱动
这种网络服务器中间件能够将它的的纯Java客户机连接到多种不同的数据库上,所用的具体协议取决于提供者,这也是最为灵活的JDBC驱动程序
本地协议纯JDBC驱动
直接将JDBC调用转换为DBMS所使用的的网络协议,是Intranet访问的使用的解决方法
2、JDBC的主要操作类及接口
java.sql.DriverManager
用于管理JDBC驱动程序
java.sql.Connection
用于建立与特定数据库的连接,建立连接后便可以执行SQL语句好人获得检索结果
java.sql.Statement
一个Statementduixiang用于执行静态SQL语句,并获得语句执行产生后的结果
java.sql.Result
用于创建表示SQL语句检索结果的结果集,用户通过结果集完成对数据库的访问
java.sql.PrepraedStatement
创建一个可以编译的SQL语句对象,该对象可以被多次运行,以提高执行的效率
java.sql.Driver
定义一个数据库驱动程序的接口
Driver接口
1.装载MySql驱动:Class.forName("com.mysql.jdbc.Driver"); 参数为连接串,实际上是一个具体的驱动类的全名 new A() --Class.forName(“com.yan.A”).newInstance()
2.装载Oracle驱动:Class.forName("oracle.jdbc.driver.OracleDriver")
3、MySQL数据库
MySQL指令
创建数据库:CREATE DATABASE
删除数据库:DROP DATABASE
查看全部数据库:SHOW DATABASES
使用数据库:USE+数据库name
原文:https://www.cnblogs.com/zzaf/p/11959914.html