标签:sys 没有 过程 扩展 cti 日期类 amp 退出 交流
JDBCJDBC是Java提供的一套数据库操作标准,各个数据库生产商要按照此标准生产数据库驱动,而开发者只需要掌握核心的接口即可通过SQL实现任意的数据库操作。JDBC提供了一种与平台无关的用于执行SQL语句的标准Java API,可以方便的实现多种关系型数据库的同意操作,它由一组用Java语句编写的类和接口组成。JDBC驱动分类JDBC-ODBC桥驱动:JDBC-ODBC是Sun提供的一个标准的JDBC操作,直接利用微软的ODBC进行数据库的连接操作,但是这种操作性能较低,所以通常情况下是不推荐使用这种方式进行操作的。JDBC本地驱动JDBC驱动程序,但是因为只能应用在特定的数据库上,会丧失掉程序的可移植性,但是这样操作的性能较高。JDBC网络驱动JDBC转换为与DBMS无关的网络协议,然后又被某个服务器转换为一种DBMS协议。这种网络服务器中间能够将它的纯JAVA客户连接到多种不同的数据库上,所用的具体协议取决于提供者。通常,这是最为灵活的JDBC驱动程序。JDBC驱动JDBC调用直接转换为DBMS所使用的网络协议。这将允许从客户机机器上直接调用DBMS服务器,是Intranet访问的一个很实用的解决方法。JDBC的主要操作及接口:| 序号 | 类及接口 | 描述 |
|---|---|---|
| 1 | java.sql.DriverManager |
用于管理JDBC驱动程序 |
| 2 | java.sql.Connection |
用于建立与特定数据库的连接,一个连接就是一个会话,建立连接后便可以执行SQL语句和获得检索结果 |
| 3 | java.sql.Statement |
一个Statement对象用于执行静态SQL语句,并获得语句执行后产生的结果 |
| 4 | java.sql.PreparedStatement |
创建一个可以编译的SQL语句对象,该对象可以被多次运行,以提高执行的效率,该接口是Statement的子接口 |
| 5 | java.sql.ResultSet |
用于创建表示SQL语句检索结果的结果集,用户通过结果集完成对数据库的访问 |
| 6 | java.sql.Date |
该类是标准java.util.Date的一个子集,用于表示与SQL DATE相同的日期类型,该日期不包括时间 |
| 7 | java.sql.Timestamp |
标准java.util.Date类的扩展,用于表示SQL时间戳,并增加了一个能表示ns(纳秒)的时间戳 |
| 8 | java.sql.CallableStatement |
用于执行SQL存储过程 |
| 9 | java.sql.DatabaseMetaData |
与java.sql.ResultSetMetaData一同访问数据库的元信息 |
| 10 | java.sql.Driver |
定义一个数据库驱动程序的接口 |
| 11 | java.sql.DataTruncation |
在JDBC遇到数据截断的异常时,报告一个警告或产生一个异常 |
| 12 | java.sql.DriverPropertyInfo |
通过DriverPropertyInfo与Driver进行交流,可使用getDriverPropertyInfo获取或提供驱动程序的信息 |
| 13 | java.sql.Time |
该类是标准java.util.Date的一个子集,用于表示时、分、秒 |
| 14 | java.sql.SQLException |
对数据库访问时产生的错误的描述信息 |
| 15 | java.sql.SQLWarning |
对数据库访问时产生的警告的描述信息 |
| 16 | java.sql.Types |
定义了表示SQL类型的常量 |
JDBC的基本操作中最常用的类和接口就是DriverManager、Connection、Statement、Result、PreparedStatement。MySQL数据库MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。MySQL常用命令MySQL数据库mysql -u 用户名 -p 密码
CREATE DATABASE 数据库名称
DROP DATABASE 数据库名称
USE 数据库名称
CREATE TABLE 表名称(
字段名称1 字段类型 [DEFAULT 默认值][约束]
字段名称2 字段类型 [DEFAULT 默认值][约束]
...,
);
DROP TABLE 表名称;
DESC 表名称;
SHOW TABLES;
SHOW DATABASES;

package diyishiba;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.*;
public class Jsb implements ActionListener{
JFrame frame;
JTextArea area;
JMenu menu1,menu2,menu3;
JMenuBar bar;
JMenuItem item1,item2,item3,item4,item5;
JFileChooser filec;
File file;
public Jsb(){
frame=new JFrame("记事本");
area=new JTextArea();
menu1=new JMenu("文件");
menu2=new JMenu("编辑");
menu3=new JMenu("格式");
bar=new JMenuBar();
item1=new JMenuItem("新建(N)");
item2=new JMenuItem("打开(O)");
item3=new JMenuItem("保存(S)");
item4=new JMenuItem("打印(P)");
item5=new JMenuItem("退出(X)");
filec=new JFileChooser();
area.setEditable(true);
item1.setMnemonic('N');
item2.setMnemonic('O');
item3.setMnemonic('S');
item4.setMnemonic('P');
item5.setMnemonic('X');
item1.setAccelerator(KeyStroke.getKeyStroke('N', Event.CTRL_MASK));
item2.setAccelerator(KeyStroke.getKeyStroke('O', Event.CTRL_MASK));
item3.setAccelerator(KeyStroke.getKeyStroke('S', Event.CTRL_MASK));
item4.setAccelerator(KeyStroke.getKeyStroke('P', Event.CTRL_MASK));
item5.setAccelerator(KeyStroke.getKeyStroke('X', Event.CTRL_MASK));
item1.addActionListener(this);
item2.addActionListener(this);
item3.addActionListener(this);
item4.addActionListener(this);
item5.addActionListener(this);
menu1.add(item1);
menu1.add(item2);
menu1.add(item3);
menu1.add(item4);
menu1.add(item5);
bar.add(menu1);
bar.add(menu2);
bar.add(menu3);
frame.getContentPane().add(new JScrollPane(area));
frame.setJMenuBar(bar);
frame.setSize(400, 300);
frame.setLocation(600, 20);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
Object obj=e.getSource();
JMenuItem item = null;
if(obj instanceof JMenuItem){
item=(JMenuItem) obj;
}
if(item==item1){
new Jsb();
}
else if(item==item2){
filec.showSaveDialog(null);
file=filec.getSelectedFile();
if(file!=null) {
try {
FileInputStream input=new FileInputStream(file);
byte[] b=new byte[(int)file.length()];
input.read(b);
area.append(new String(b));
input.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(null,"文件读取出错");
}
}
}
else if(item==item3){
filec.showSaveDialog(null);
file=filec.getSelectedFile();
try {
FileOutputStream out=new FileOutputStream(file);
out.write(area.getText().getBytes());
out.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
else if(item==item4) {
JOptionPane.showMessageDialog(null,"当前设备没有连接打印机!");
}
else if(item==item5){
System.exit(0);
}
}
}
package diyishiba;
public class Test13 {
public static void main(String[] args) {
new Jsb();
}
}






标签:sys 没有 过程 扩展 cti 日期类 amp 退出 交流
原文地址:https://www.cnblogs.com/lcbxhda/p/11958015.html