zoukankan      html  css  js  c++  java
  • 第十七部分_详解JDBC

    JDBC(Java DataBase Connectivity)

    • 是一种用于执行SQL语句的Java API
    • 由一组用Java编程语言编写的类和接口组成
    • 为数据库开发人员提供了一个标准的API,使他们能够用纯Java API来编写数据库应用程序

    四类JDBC驱动程序(了解)

    • JDBC-ODBC桥+ODBC驱动程序:利用ODBC驱动程序提供JDBC访问。注意,必须将ODBC二进制代码(许多情况下还包括数据库客户机代码)加载到该驱动程序的每个客户机上
    • 本地API:部分用Java来编写的驱动程序,这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、DB2或其他DBMS的调用。注意,像桥驱动程序一样,这种类型的驱动程序要求将某些二进制代码加载到每台客户机上
    • JDBC网络纯Java驱动程序(使用频繁):这种驱动程序将JDBC转换为与DBMS无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上
    • 本地协议纯Java驱动程序:这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议

    数据库连接的一般过程(重要)

    • 载入JDBC驱动程序(jar)
    • 定义连接URL(特定数据库)
    • 建立连接(Connection)
    • 创建Statement对象(JDBC顶层接口)
    • 执行查询或更新
    • 结果处理
    • 关闭连接

    加载驱动程序

    • 使用JDBC-ODBC桥驱动程序的语句如下:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    • 使用Oracle9i的JDBC驱动程序的语句如下:Class.forName("oracle.jdbc.driver.OracleDriver");

    建立JDBC连接

    • DriverManager类的getConnection()方法:public static Connection getConnection(String url, String user, String password) throws SQLException
    • Oracle提供了两种JDBC驱动程序

      最后,不要忘记关闭Connection对象,释放占用的资源:public void close() throws SQLException

    发送SQL语句

    • Statement对象用于将SQL语句发送到数据库中。存在三种Statement对象:Statement;PreparedStatement(从Statement继承而来);CallableStatement(从PreparedStatement继承而来)
    • 由Connection的createStatement()方法创建:public Statement createStatement() throws SQLException

    id name
    1  张三
    2  李四
    
    
    ResultSet rs = st.executeQuery("select * from person");
    
    rs.next(); // 通常用来循环遍历表,可以看作一个指针指向当前数据行,默认指向有效数据行的上一行
    
    int id = res.getInt(1); // 取得当前行中第一列的值,下同
    int id2 = res.getInt("id");
    
    String name = rs.getString(2);
    String name2 = rs.getString("name");
    
    PreparedStatement ps = con.prepareStatement("insert into person(id, name) values (?,?)");
    
    ps.setInt(1, 5); // 函数调用的类型根据字段中问号对应的类型,这里1代表第一个问号,5是设置的值
    ps.setString(2, "wangwu");
    
    ps.execute(); // 表示真正执行sql语句
    

      

  • 相关阅读:
    chrome安装HostAdmin app
    Python编码问题
    Elasticsearch利用scroll查询获取所有数据
    oracle不小心更新了数据库中的所有内容后的恢复
    git误提交了项目文件和配置文件的恢复方法
    生成banner的网站
    去除字符串中的emoji字符
    爬虫从网页中去取的数据中包含 空格
    高版本的jdk编译过的项目移到低版本的JDK的eclipse中出错的问题
    java爬虫爬取的html内容中空格( )变为问号“?”的解决方法
  • 原文地址:https://www.cnblogs.com/Code-Rush/p/4671492.html
Copyright © 2011-2022 走看看