课程总结
JDBC
JDBC是Java提供的一套数据库操作标准,各个数据库生产商要按照此标准生产数据库驱动,而开发者只需要掌握核心的接口与类即可通过SQL实现任意的数据库操作。
JDBC驱动分类
(1)JDBC-ODBC桥驱动:一种由Sun提供的标准JDBC操作,直接使用微软的ODBC进行数据库的连接操作,但这种操作性能低,不推荐直接使用。
(2)JDBC本地操作:直接使用各个数据库生产商提供的JDBC驱动程序,但是只能应用在特定的数据库上,丧失了可移植性,但性能高。
(3)JDBC网络驱动:这是一种将JDBC转换为DBMS无关的网络协议,然后又被某个服务器转换为一种DBMS协议。这是最为灵活的JDBC驱动程序。
(4)本地纯协议JDBC驱动:将JDBC调用直接转换为DBMS所使用的网络协议。允许从客户机机器直接调用DBMS服务器,是Intranet访问的一个很实用的解决方法。
JDBC的主要操作类及接口
MySQL数据库
常用指令
连接MySQL数据库
mysql -u 用户名 -p 密码
创建数据库
创建:CREATE DATABASE 数据库名称
删除:DROP DATABASE 数据库名称
SQL语法基础
user表
MySQL中的数据类型
实验报告
记事本
实验代码
package text;
import java.io.*;
import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.event.InputEvent;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class l implements ActionListener{
File file;
JFrame frame;
JMenuBar bar;
JMenu fileMenu,editMenu;
ImageIcon newIcon,openIcon,saveIcon,closeIcon;
JTextArea area;
JScrollPane scroll;
JFileChooser chooser;
JMenuItem newItem,openItem,saveItem,closeItem;
@SuppressWarnings("deprecation")
public l(){
newIcon = new ImageIcon("C:"+File.separator+"lxy"+File.separator+"新建.PNG");
openIcon = new ImageIcon("C:"+File.separator+"lxy"+File.separator+"打开.PNG");
saveIcon = new ImageIcon("C:"+File.separator+"lxy"+File.separator+"另存为.PNG");
closeIcon = new ImageIcon("C:"+File.separator+"lxy"+File.separator+"关闭.PNG");
bar=new JMenuBar();
frame = new JFrame("记事本");
fileMenu=new JMenu("文件");
editMenu=new JMenu("编辑");
newIcon=new ImageIcon();
openIcon=new ImageIcon();
saveIcon=new ImageIcon();
closeIcon=new ImageIcon();
area=new JTextArea();
scroll=new JScrollPane(area);
newItem=new JMenuItem("新建(N)",newIcon);
openItem=new JMenuItem("打开(O)",openIcon);
saveItem=new JMenuItem("另存为(S)",saveIcon);
closeItem=new JMenuItem("关闭(C)",closeIcon);
newItem.addActionListener(this);
openItem.addActionListener(this);
saveItem.addActionListener(this);
closeItem.addActionListener(this);
fileMenu.add(newItem);
fileMenu.addSeparator();
fileMenu.add(openItem);
fileMenu.addSeparator();
fileMenu.add(saveItem);
fileMenu.addSeparator();
fileMenu.add(closeItem);
newItem.setMnemonic(KeyEvent.VK_N);
newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK));
openItem.setMnemonic(KeyEvent.VK_O);
openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK));
saveItem.setMnemonic(KeyEvent.VK_S);
saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK));
closeItem.setMnemonic(KeyEvent.VK_C);
closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK));
bar.add(fileMenu);
bar.add(editMenu);
frame.setJMenuBar(bar);
frame.add(scroll);
frame.setSize(700,500);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent event) {
Object obj=event.getSource();
if(obj instanceof JMenuItem){
JMenuItem item=(JMenuItem)obj;
if(item==newItem){
new l();
}
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 (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);
}
}
}
}
实验结果
实验问题
图片无法显示: