JDBC基础知识

什么的JDBC:

     使java应用程序具有访问不同类型数据库的能力;基于java的、提供连接、访问和操纵关系数据库的应用程序接口(API),提供在java应用程序中执行SQL语句以访问和操纵关系数据库的方法。

JDBC与ODBC的区别:

  1. ODBC只适用于windows平台,而JDBC具有跨平台性;
  2. ODBC数据源需要手工配置,JDBC在应用程序中指定数据库,不需要配置;

JDBC四种类型的驱动配置:

  1. JDBC-ODBC桥驱动程序:把JDBC方法翻译成ODBC函数调用,使java应用程序可以通过ODBC访问数据库。(Access、DB2、Sybase、SQL Server)
    • 应用于没有纯JDBC驱动程序存在时;
    • 优点:有大量的ODBC驱动程序可用,但只能用于windows和sun Solaris系统;
    • 缺点:不易于移植,运行速度慢;
  2. 本地java实现驱动程序,是建立在已有专用驱动程序的基础上,将JDBC方法翻译成本地已有的专用驱动程序。(DB2、Sybase)
    • 翻译工作采用java语言实现,专用驱动程序通常采用C语言编写,依赖于本地库文件运行;
    • 优点:充分利用已有的专用驱动程序;
    • 缺点:不具有跨平台性;
  3. 网络协议驱动程序,是一种全新的驱动程序,以“中间件”形式出现,有中间件组件把JDBC方法翻译成数据库客户端请求,再向数据库服务器发送请求。(DB2)
    • 中间件组件和数据库客户端通常位于中间层服务器上,此类驱动程序完全由java实现;
    • 适用于基于网络的分布式应用。
  4. 数据库协议驱动程序,全新结构的驱动程序,应用程序直接与数据库服务器通信。(SQL Server、MySQL)
    • 需要数据库开发商的强力支持,提供基于特定数据库的网络插件,实现针对特定数据的通信协议,是JDBC驱动程序通过网络插件直接与数据库服务器通信。

JDBC的4个主要接口:

  1. Driver接口:提供给JDBC驱动程序实现的接口,用于装入和管理JDBC驱动程序,通常应用程序中不直接使用,而通过DriverManager类使用Driver接口提供的功能;
  2. Connection接口:管理已建立连接的数据库连接;
  3. Statement接口:管理和执行sql语句;
  4. ResultSet接口:存储数据查询返回的结果集;

 

数据库基本操作:

  • 指定JDBC驱动程序

    • 首先要指定驱动程序类型,java.lang.Class类的forName()方法用于指定JDBC驱动程序;
    • 声明:public static Class<?> forName(String className) throws ClassNotFoundException
    • 例:Class.forName("com.mysql.jdbc.Driver");      //指定MySQL JDBC驱动程序
  • DriverManager类创建指定数据库连接

    • getConnection()方法装载指定JDBC驱动程序并创建于指定数据库的连接,返回数据库连接Connection对象;
    • 声明:public static Connection getConnection(String url);/public static Connection getConnectuin(url,user,password);
    • 例:Connection  xx = DriverManager.getConnection(url);
  • Connection接口管理连接对象

    • 一个Connection对象表示对一个特定数据源已经建立的一条连接,它能创建执行SQL的statement语句对象,还能提供数据库中的属性信息;
  • Statement执行SQL语句

    • 声明

public interface Statement extends Wrapper{

    int executeUpdate(String sql) throws SQLException;                    //执行数据定义和数据更新SQL语句

    ResultSet executeQuery(String sql) throws SQLException;          //执行数据查询SQL语句

    boolean execute(String sql) throws SQLException;                       //执行SQL语句

    int getUpdateCount() throws SQLException;                                 //获得数据更新所影响的行数

    ResultSet getResultSet() throws SQLExption;                                 //获得数据查询结果集

    void close() throws SQLException;                                                   //关闭语句

}

  • ResultSet接口存储结果集

    • 结果集由若干列、若干行的数据项组成。
    • 用 while(xxx.next())  {  system.out.print(xxx);  }     //迭代遍历结果集
  • 关闭close()

    • re.close();  stat.close();   conn.close();

通过ResultSet结果集更新表

  • 必须在创建Statement对象时指定结果集的属性。
  • Statement stat = conn.createStatement(int  resultSetType,int resultSetConCurrency) throws SQLException;
  • 其中int resultSetType指定结果集是否可以滚动;resultSetConncurrency指定能否通过结果集更新表(int CONCUR_READ_ONLY=1007; //只读、默认值    int CONCUR_UPDATETABLE=1008;  //可更新);
  • 可更新的方法:
    • void refreshRow()...    //用数据库中的最紧值刷新当前行
    • void updateInt (String columnLabel,int x)...  //更改当前行指定列数据
    • void updateString(int columnIndec,String x)...  //改当前行指定列数据
    • void updateRow()...    //将改变后的当前行数据提交给数据库中的表
    • void moveToInsertRow()...   //移动到插入行
    • void moveToCurrentRow()...  //移动到插入前的当前行
    • void insertRow()...  //在表中插入一行
    • void deleteRow()... //删除当前行并提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值