第十四周課程總結&實驗報告
這周主要學習的是①數據庫的使用以及如何去配置數據庫②回顧了以前所學的概念。
JDBC
JDBC的全稱是Java Database Connectivity。
JDBC對數據庫進行操作的流程:
連接數據庫
發送數據請求,即傳統的CRUD指令
返回操作結果集
JDBC中常用的對象包括:
ConnectionManager
Connection
Statement
CallableStatement
PreparedStatement
ResultSet
SavePoint
如何建立數據庫連接
1)加載數據庫驅動,即上文中的driver以及Class.forName(dirver)
2)定位數據庫連接字符串, 即dbURL以及DriverManager.getConnection(dbURL)
不同的數據庫,對應的dirver和dbURL不同,但加載驅動和建立連接的方式是相同的,即只需要修改上面driver和dbURL的值就可以了。
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")
Driver可分為以下4中類型:
1.JDBC-ODBC Bridge和ODBC Driver 2.Native-API partly-Java Driver 3.JDBC-Net All-Java Driver 4.Native-protocol All-Java Driver
MySQL指令
1.顯示數據庫 :show databases
顯示表 :show tables
2.創建數據庫testdb
create database testdb;
3.預防性創建數據庫:
create database if not testdb;
4.創建表
use testdb;
create table table1( username varchar(12), password varchar(20));
5.查看表結構
describe table1;
6.給表添加一列
alter table table1 add column(sex varchar(2) comment '性別’,age date not null comment '年齡');
commit;
7.修改表結構
create table tmp as select * from table1;
8.刪除表table1
drop table if exists table1;
drop table if exists tmp;
9.刪除數據庫testdb
drop database testdb;
源代碼
package 十四周;
import javax.swing .*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class text extends JFrame implements ActionListener{
JFrame frame;
JTextArea text;
JScrollPane scr;
JMenuBar bar;
JMenu menu;
JMenuItem newi;
JMenuItem openi;
JMenuItem savei;
JMenuItem closei;
JMenuItem exiti;
ImageIcon image1;
ImageIcon image2;
ImageIcon image3;
ImageIcon image4;
ImageIcon image5;
JFileChooser chooser;
File file;
FileInputStream fil;
FileOutputStream fol;
public text() {
frame = new JFrame("記事本");
text = new JTextArea();
scr = new JScrollPane(text);
image1 = new ImageIcon("D:"+File.separator+"Java"+File.separator+"picture圖標"+File.separator+"新建.png");
image2 = new ImageIcon("D:"+File.separator+"Java"+File.separator+"picture圖標"+File.separator+"打開.png");
image3 = new ImageIcon("D:"+File.separator+"Java"+File.separator+"picture圖標"+File.separator+"另存為.png");
image4 = new ImageIcon("D:"+File.separator+"Java"+File.separator+"picture圖標"+File.separator+"關閉.jpg");
image5 = new ImageIcon("D:"+File.separator+"Java"+File.separator+"picture圖標"+File.separator+"退出.jpg");
bar = new JMenuBar();
menu = new JMenu("文件");
newi = new JMenuItem("新建",image1);
openi = new JMenuItem("打開",image2);
savei = new JMenuItem("另存為",image3);
closei = new JMenuItem("關閉",image4);
exiti = new JMenuItem("退出",image5);
text.setEditable(true);
frame.getContentPane().add(scr);
newi.setMnemonic('N');
openi.setMnemonic('O');
closei.setMnemonic('C');
exiti.setMnemonic('E');
newi.setAccelerator(KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK));
openi.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK));
savei.setAccelerator(KeyStroke.getKeyStroke('S',java.awt.Event.CTRL_MASK));
closei.setAccelerator(KeyStroke.getKeyStroke('C',java.awt.Event.CTRL_MASK));
exiti.setAccelerator(KeyStroke.getKeyStroke('E',java.awt.Event.CTRL_MASK));
newi.addActionListener(this);
openi.addActionListener(this);
savei.addActionListener(this);
closei.addActionListener(this);
exiti.addActionListener(this);
menu.add(newi);
menu.add(openi);
menu.add(savei);
menu.add(closei);
menu.add(exiti);
bar.add(menu);
frame.addWindowListener(new MyWindowAdapter());
frame.setJMenuBar(bar);
frame.setSize(600, 500);
frame.setLocation(300,200);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
file =null;
Object obj = e.getSource();
if(obj instanceof JMenuItem) {
JMenuItem item = (JMenuItem)obj;
if(item == newi) {
new text();
}else if(item == openi) {
chooser = new JFileChooser();
chooser.showSaveDialog(null);
file = chooser.getSelectedFile();
try {
fil = new FileInputStream(file);
byte[] b = new byte[fil.available()];
fil.read(b);
String str = new String(b);
text.append(str);
fil.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}else if(item == savei) {
chooser = new JFileChooser();
chooser.showSaveDialog(null);
file = chooser.getSelectedFile();
try {
if(!file.exists()) {
file.createNewFile();
}
fol = new FileOutputStream(file);
byte[] b = text.getText().getBytes();
fol.write(b);
fol.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}else if(item == closei){
System.exit(1);
}
}
}
}
package 十四周;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class MyWindowAdapter extends WindowAdapter{
public void WindowClosing(WindowEvent arg0) {
System.exit(1);
}
}
package 十四周;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
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;
import javax.swing.*;
import java.awt.*;
public class text1 {
public static void main(String[] args) {
new text();
}
}


浙公網安備 33010602011771號