本周咱们主要学习了 jdbc 以及 MySQl数据库
1、JDBC
概述:JDBC是Java提供的一套数据库操做标准,各个数据库生产商要按照此标准生产数据库驱动,而开发者只须要掌握核心的接口与类便可经过SQL实现任意的数据库操做。
2、JDBC驱动分类:
(1)JDBC-ODBC桥驱动
JDBC-ODBC是Sun提供的一个标准的JDBC操做,直接利用微软的ODBC进行数据库的连接操做,可是这种操做性能低,因此一般状况下是不推荐使用这种方式进行操做的。
(ODBC(Open Database Connectivity,开放数据库的链接)是微软公司提供的一套数据库的编程接口,Sun的JDBC实现实际上也是模仿了ODBC的设计)
(2)JDBC本地驱动
直接使用各个数据库生产商提供JDBC驱动程序,可是由于其智能应用在特定的数据库上,会丧失掉程序的可移植性,可是这样操做的性能较高
(3)JDBC网络驱动
这种驱动程序将JDBC转化为与DBMS无关的网络协议,而后又被某个服务器转化为一种DBMS协议。这种网络服务器中间件可以将它的纯Java客户机链接到各类不一样的数据库上。因此用的具体协议取决于提供者。一般,这是最为灵活的JDBC驱动程序。
(4)本地协议纯JDBC驱动
这种类型的驱动程序将JDBC调用直接装华为DBMS所使用的网络协议。这将容许从客户机机器上直接调用DBMS服务器,是Intranet访问的一个很实用的解决方法。
3、JDBC的主要操做及接口
序号 类及接口 描述
1 java.sql.Drivermanager 用于管理JDBC驱动程式
2 java.sql.Connection 用于创建与特定数据库的链接,一个连接就是一个对话,创建链接后即可以执行SQL语句和得到检查后果
3 java.sql.Statemeng 一个Statemeng对象用于执行静态SQL语句,并得到语句执行后产生的后果
4 java.sql.PreparedStatemeng 建立一个能够编译的SQL语句对象,该对象能够被屡次运行,以提升执行效率,该接口是Statement的子接口
5 java.sql.Resultet 用于建立表示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.DatabaseMetaDate 与java.sql.ResultSetMetaData一个用于访问数据库夫人元信息
10 java,sql.Driver 定义一个数据库驱动程序的接口
11 java.sql.DateTruncation 在JDBC遇到数据载断的异常时,报告一个警告
12 java.sql.DriverPropertyInfo 高级程序设计人员经过Driver Property Info与Driver进行交流可以使用getDriverPropertyINfo获取或提供驱动程序的信息
13 java. sql.Time 该类是标准java.util.date的一个子集,用于表示时、分、秒
14 java.sql.SQlExcepion 对数据库访问时产生的错误的描述信息
15 java.sql.Types 定义了表示SQL类型的常量
在JDBC的基本操做中最经常使用的类和接口就是DriverManager Connection Statement Result PreparedStatementjava
简单记事本的编写
import java.awt.BorderLayout;
import java.awt.Container;
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 java.io.InputStream;
import java.io.OutputStream;
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;sql
public class 记事本 extends JFrame implements ActionListener {
JTextArea inputText;
JScrollPane pane;
public 记事本() {
this.setTitle("Notepad");
this.setSize(600, 400);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);数据库
Container contentPane = this.getContentPane(); contentPane.setLayout(new BorderLayout(5,1)); JMenuBar menuBar = new JMenuBar(); JMenu menu = new JMenu("File"); JMenuItem open=new JMenuItem("打开..."); open.addActionListener(this); menu.add(open); JMenuItem save=new JMenuItem("存盘"); save.addActionListener(this); menu.add(save); menu.addSeparator(); JMenuItem item = new JMenuItem("退出"); menu.add(item); item.addActionListener(this); menuBar.add(menu); this.setJMenuBar(menuBar); inputText=new JTextArea(100, 100); pane=new JScrollPane(inputText); contentPane.add(pane); } public static void main(String[] args) { JFrame frame = new 记事本(); frame.setVisible(true); } @Override public void actionPerformed(ActionEvent event) { String cmd = event.getActionCommand(); if ("退出".equals(cmd)) { this.dispose(); } if ("打开...".equals(cmd)) { File srcFile=null; JFileChooser fileChooser=new JFileChooser(); int res=fileChooser.showOpenDialog(null); if(res==JFileChooser.APPROVE_OPTION) { srcFile=fileChooser.getSelectedFile(); } try { InputStream is = new FileInputStream(srcFile); byte[] buffer = new byte[8*1024]; int len; while ((len = is.read(buffer)) != -1) { String text = new String(buffer, 0, len,"UTF-8"); inputText.append(text); } is.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } if ("存盘".equals(cmd)) { File destFile=null; JFileChooser fileChooser=new JFileChooser(); int res = fileChooser.showSaveDialog(null); if (res == JFileChooser.APPROVE_OPTION) { destFile = fileChooser.getSelectedFile(); } else { System.out.println("用户取消"); return; } try { OutputStream os = new FileOutputStream(destFile); os.write(inputText.getText().getBytes("UTF-8")); os.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
}
运行结果
总结 题目难 要室友同窗帮助编程